问题:使用virtualenv恢复`–no-site-packages`选项
我使用该--no-site-packages
选项创建了virtualenv 并安装了许多库。现在,我想还原该--no-site-packages
选项并使用全局包。
我可以不重新创建virtualenv来做到吗?
更确切地说:
我不知道究竟创建使用一个的virtualenv发生时,--no-site-packages
相对于没有使用该选项的选择。
如果我知道会发生什么,那么我可以弄清楚如何撤消它。
回答 0
尝试删除(或重命名)虚拟环境下文件夹no-global-site-packages.txt
中的Lib
文件。
其中venv是您的虚拟环境的名称,而python3.4对应于所涉及的任何python版本,例如:
$ rm venv/lib/python3.4/no-global-site-packages.txt
如果您改变主意并想放回原处:
$ touch venv/lib/python3.4/no-global-site-packages.txt
注意:如果看不到上述文件,则说明您有较新版本的virtualenv。你要遵循这个答案,而不是
回答 1
至少对于Python 3.5.2,pyvenv.cfg
在virtualenv目录的根目录中有一个文件。您需要做的就是将include-system-site-packages
标志从更改false
为true
:
home = /usr/bin
include-system-site-packages = false # <- change this to "true"
version = 3.5.2
回答 2
使用virtualenvwrapper管理virtualenvs时,可以使用shell函数toggleglobalsitepackages
在使用和不使用站点包之间进行切换。
回答 3
尝试在/virtualenv_root/lib/
和之间添加符号链接/path/to/desired/site-packages/
回答 4
转到您的venv文件夹并打开pyvenv.cfg
。(例如,如果您的虚拟环境被调用,myenv
则该文件将位于myenv\pyvenv.cfg
)
您会看到一个布尔设置,名为 include-system-site-packages
将该设置设置true
为使用全局包
如果要禁用使用全局软件包,只需将该设置设置为即可false
。