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

时间:2020-02-10 15:42:16

标签: python python-3.x virtualenv

我确保阅读this question和类似的书,但是找不到我的问题的答案。

我的问题是:当我进入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 list事先安装过该软件包。
  2. 我通过从其他目录运行.py脚本(使用cd /etc.etc/更改目录,然后从那里运行)来确认该软件包已安装在其他位置。
    1. 我适时停用了环境。

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

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

正在执行的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虚拟环境中应该相对容易识别。