在设置好后,是否可以在virtualenv中设置--no-site-packages?

时间:2012-10-24 17:40:48

标签: python virtualenv

  

可能重复:
  Can I change an an existing virtualenv to ignore global site packages? (like --no-site-package on a new one)

我有一个virtualenv设置,安装了大量的软件包,我不想重新安装。有没有办法设置这个现有的virtualenv,以便它不使用全局site-packages目录?

仅供参考,这主要是出于此警告的动机: UserWarning: Module X was already imported from 每次我开始,例如,mercurial。

相关,但反过来:Revert the `--no-site-packages` option with virtualenv。这意味着我所需要的只是一个lib/no-global-site-packages.txt文件,但其中一个空文件似乎没有效果。

1 个答案:

答案 0 :(得分:4)

另请参阅反向:Modifying a virtualenv

为了完整性,我会在那里发布我的答案的反向指令。最终这个问题可以与另一个问题合并。

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

$ virtualenv $PATH_TO_VIRTUALENV

或在--system-site-packages为默认行为的旧版本中:

$ virtualenv --no-site-packages $PATH_TO_VIRTUALENV

$PATH_TO_VIRTUALENV替换为现有 virtualenv 的路径。这将重新安装 virtualenv ,重新配置它以防止访问全局包,同时保持已安装包。