已经设置了virtualenv,是否可能在之后设置--no-site-packages参数?

4
我已经设置了一个virtualenv,并安装了很多我不想重新安装的软件包。有没有一种方法来设置这个现有的virtualenv,使其不使用全局site-packages目录?
FYI,这主要是由于每次启动例如mercurial时都会收到此警告:UserWarning:模块X已从
相关但执行相反操作的内容:Revert the `--no-site-packages` option with virtualenv。这意味着我所需要的只是一个lib / no-global-site-packages.txt文件,但其中一个空文件似乎没有效果。
1个回答

4

逆操作请参阅:修改虚拟环境

为了完整起见,我将发布我的答案的逆指令。最终这个问题可以与另一个问题合并。

由于--no-site-packages是近期版本(>= 1.7)的virtualenv的默认行为,您只需要使用以下命令重新创建virtualenv

$ virtualenv $PATH_TO_VIRTUALENV

或者在旧版本中,--system-site-packages 是默认行为:

$ virtualenv --no-site-packages $PATH_TO_VIRTUALENV

$PATH_TO_VIRTUALENV替换为现有虚拟环境的路径。这将重新安装虚拟环境,重新配置它以防止访问全局包,同时保留已安装在其中的软件包。


尝试过这个,但在python2.7中告诉我我问了错误的问题... "--no-site-packages"标志已被弃用;现在它是默认行为。我仍然收到UserWarning的警告。我可能会接受这个答案,因为从技术上讲它是对我标题中的问题的正确回答,但仍然有些不对劲。 - keflavich
你说得完全正确。根据最近版本的默认行为,修订了答案以使其更加正确。 - Pedro Romano

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接