【问题标题】:Virtualenv installing a package in the global directoryVirtualenv 在全局目录中安装包
【发布时间】:2020-05-25 23:15:28
【问题描述】:

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

我的问题是:当我进入 muy 虚拟环境并激活它时,如果我在那里安装一个包,它也会安装在我计算机的其他地方。

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

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 中卸载该软件包,它也会在其他地方被卸载。

非常感谢您的帮助。

【问题讨论】:

  • 当你在别处运行它时,你的环境是否被停用?
  • 运行which pip3 以检查您的pip3 是否基于环境。您还应该在提示中看到 (env) 前缀或类似名称,以验证您的环境是否已正确激活。
  • @GoodDeeds:是的,我确保我事先输入了“停用”。

标签: python python-3.x virtualenv


【解决方案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 虚拟环境中应该相对容易识别。

【讨论】:

  • 是的,我需要先改变那条路径,就像你建议的那样。非常感谢。现在效果很好:)
猜你喜欢
  • 2014-01-23
  • 1970-01-01
  • 1970-01-01
  • 2014-01-23
  • 1970-01-01
  • 2014-01-24
  • 2015-11-10
  • 2016-11-11
  • 2021-05-09
相关资源
最近更新 更多