撤销虚拟环境中的 `--no-site-packages` 选项
我创建了一个虚拟环境,使用了 --no-site-packages
这个选项,并安装了很多库。现在我想取消这个 --no-site-packages
选项,想要使用全局的包。
我能在不重新创建虚拟环境的情况下做到这一点吗?
更具体一点:
我想知道,当我创建虚拟环境时,如果使用 --no-site-packages
这个选项,和不使用这个选项,具体会发生什么。
如果我知道发生了什么,我就能想办法撤销它。
6 个回答
23
去你的虚拟环境文件夹,打开 pyvenv.cfg
文件。(比如,如果你的虚拟环境叫 myenv
,那么这个文件就在 myenv\pyvenv.cfg
这个位置)
你会看到一个叫 include-system-site-packages
的设置项,它是一个布尔值。
把这个设置改成 true
,这样就可以使用全局的包了。
如果你想禁用全局包的使用,只需把这个设置改成 false
就可以了。
35
对于Python 3.5.2版本来说,在虚拟环境的目录下会有一个叫做 pyvenv.cfg
的文件。你只需要把里面的 include-system-site-packages
这个选项从 false
改成 true
就可以了:
home = /usr/bin
include-system-site-packages = false # <- change this to "true"
version = 3.5.2
163
试着删除(或者重命名)你虚拟环境中的 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。你需要参考 这个回答。