我有一个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
文件,但其中一个空文件似乎没有效果。
答案 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 ,重新配置它以防止访问全局包,同时保持已安装包。