如何删除通过pyenv/pip安装的包

2024-04-29 03:37:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我对通过pyenv/pip安装的路径上的可执行文件感到困惑。故事从我拥有多个python解释器和一个给定的包开始。今天我学习了pipx,它应该为我提供一个由python包(可执行文件)构成的系统独立的可执行文件。安装包后,pipx正确地警告我它已经存在。然而,如何在我的路径上摆脱它,以便能够使用新的、正确的可执行文件,还不太清楚

我尝试过删除路径上被发现为重复的文件,这导致了下面一个有趣的情况:

my_machine:proj_a ikkamens$ pipx install flynt --python python3.8
⚠️  Note: flynt was already on your PATH at /Users/ikkamens/.pyenv/shims/flynt
  installed package flynt 0.40.1, Python 3.8.0
  These apps are now globally available
    - flynt
done! ✨ 🌟 ✨
my_machine:proj_a ikkamens$ flynt --help
pyenv: flynt: command not found

The 'flynt' command exists in these Python versions:
  3.6.8/envs/blues
  3.7.3
  3.8-dev
  blues

my_machine:proj_a ikkamens$ rm /Users/ikkamens/.pyenv/shims/flynt
my_machine:proj_a ikkamens$ flynt
-bash: /Users/ikkamens/.pyenv/shims/flynt: No such file or directory
my_machine:proj_a ikkamens$ cd
my_machine:~ ikkamens$ cat .bashrc | grep fl
my_machine:~ ikkamens$ which flynt
/Users/ikkamens/.local/bin/flynt
my_machine:~ ikkamens$ flynt
-bash: /Users/ikkamens/.pyenv/shims/flynt: No such file or directory

怎么可能which返回的结果与执行的结果不一样?请注意,my.bashrc不包含任何别名或类似内容(grep语句)。如何彻底摆脱旧安装遗留下来的东西


Tags: no路径bashpyenv可执行文件mymachinepipx
2条回答

使用pyenv,您可以获得不同的独立python环境。首先,您必须激活一个pyenv环境:

# check which virtual environments you have
pyenv virtualenvs

# activate one
pyenv activate blues
# seems that `blues` is your virtual environment with python 3.6.8
# then install your package into active virtual environment
pip install flynt
# also uninstall packages while being in your environment

正如@jordanm所评论的,这个问题是由bash散列路径查找引起的

my_machine:~ ikkamens$ rm /Users/ikkamens/.pyenv/shims/flynt
my_machine:~ ikkamens$ flynt
-bash: /Users/ikkamens/.pyenv/shims/flynt: No such file or directory
my_machine:~ ikkamens$ which flynt
/Users/ikkamens/.local/bin/flynt
my_machine:~ ikkamens$ hash -r
my_machine:~ ikkamens$ flynt
Running flynt v.0.40.1

相关问题 更多 >