Virtualenv 在全局目录中安装软件包



我确保阅读这个问题和类似的问题,但我找不到问题的答案。

我的问题是:当我进入muy virtual env并激活它时,如果我在那里安装一个软件包,它也安装在我计算机的其他地方。

因此,例如,如果我在终端中输入:

cd home/Documents/Python/tests/my_virtual_env
source bin/activate

这将激活虚拟环境。如果我输入:

pip3 install wget  #just an example package 

我看到了安装过程,我可以运行使用 wget 的.py脚本。但是,为什么此软件包也安装在计算机的其他位置?

  1. 我确保我没有事先使用 pip3 列表安装该软件包。
  2. 我确认软件包是通过从其他目录运行.py脚本(使用 cd/etc.etc/更改目录,然后从那里运行它(安装在其他地方的。
    1. 我在适当的时候停用了环境。

我还意识到,如果我在 virtualenv 中卸载该软件包,它也会在其他地方卸载。

非常感谢您的帮助。

可能是正在执行的pip3命令实际上没有绑定到虚拟环境。因此,您可以改为以下内容,无论是否激活虚拟环境,它都将起作用:

$ path/to/my_virtual_env/bin/python3 -m pip install SomeProject

以下命令应该为您提供相对清晰的项目安装位置,请确保它位于虚拟环境的site-packages目录中:

$ path/to/my_virtual_env/bin/python3 -m pip show SomeProject

所以它应该显示一些东西:

Name: SomeProject
...
Location: .../path/to/my_virtual_env/lib.python3.X/site-packages

但是,为什么此软件包也安装在计算机的其他位置?

下面显示了二进制文件所在的位置:

$ which somecommand

识别somecommand是否在 Python 虚拟环境中应该相对容易。

最新更新