4

可能重复:
我可以更改现有的 virtualenv 以忽略全局站点包吗?(就像新的 --no-site-package 一样)

我设置了一个 virtualenv,安装了很多我不想重新安装的软件包。有没有办法设置这个现有的 virtualenv 以便它不使用全局站点包目录?

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

相关,但反过来:使用 virtualenv 恢复 `--no-site-packages` 选项。这意味着我只需要一个lib/no-global-site-packages.txt文件,但其中一个空文件似乎没有效果。

4

1 回答 1

4

另请参阅相反的内容:修改 virtualenv

为了完整起见,我将在那里发布我的答案的反向说明。最终这个问题可以与另一个问题合并。

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

$ virtualenv $PATH_TO_VIRTUALENV

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

$ virtualenv --no-site-packages $PATH_TO_VIRTUALENV

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

于 2012-10-24T18:21:15.617 回答