使用virtualenv恢复`--no-site-packages`选项

Oli*_*ier 122 python virtualenv

我使用该--no-site-packages选项创建了virtualenv 并安装了许多库.现在我想恢复该--no-site-packages选项并使用全局包.

我可以不重新创建virtualenv吗?

更确切地说:

我想知道使用该选项创建virtualenv时究竟发生了什么--no-site-packages,而不是使用该选项.

如果我知道会发生什么,那么我可以弄清楚如何撤消它.

ars*_*ars 157

尝试删除(或重命名)虚拟环境下文件夹no-global-site-packages.txt中的Lib文件.

其中venv是您的虚拟环境的名称,python3.4对应于所涉及的任何版本的python,例如:

$ rm venv/lib/python3.4/no-global-site-packages.txt
Run Code Online (Sandbox Code Playgroud)

如果你改变主意并希望把它放回去:

$ touch venv/lib/python3.4/no-global-site-packages.txt
Run Code Online (Sandbox Code Playgroud)

  • 那样做.该文件的存在(或不存在)是no-site-packages标志的唯一直接影响.Virtualenv的自定义site.py查找该文件以决定是否将全局站点包目录添加到sys.path. (18认同)
  • virtualenv的Windows版本包含`virtualenv/pyenv.cfg`文件.site-packages有一个选项:`include-system-site-packages = false`更改此值并调用Activate.ps1 (3认同)
  • 这个文件似乎不再出现了。请参阅 /sf/answers/4095966101/ 获取更新的答案 (2认同)

kot*_*rfa 13

至少对于Python 3.5.2,pyvenv.cfgvirtualenv目录的根目录中有文件.您需要做的就是将include-system-site-packages标志更改falsetrue:

home = /usr/bin
include-system-site-packages = false  # <- change this to "true"
version = 3.5.2
Run Code Online (Sandbox Code Playgroud)


Ada*_*hon 12

使用virtualenvwrapper管理virtualenvs时,可以使用shell函数toggleglobalsitepackages在使用和不使用站点包之间切换.


Zai*_*zvi 8

转到您的 venv 文件夹并打开pyvenv.cfg. (例如,如果您的虚拟环境被调用,myenv则该文件将位于myenv\pyvenv.cfg

您将看到一个名为的布尔设置 include-system-site-packages

将该设置设置true为使用全局包

如果您想禁用使用全局包,只需将该设置设置为false