2012-10-24 99 views
4

可能重複:
Can I change an an existing virtualenv to ignore global site packages? (like --no-site-package on a new one)是否可以在virtualenv設置--no-site-packages之後設置?

我已經建立了,用大量包的virtualenv中安裝的,我不想重新安裝。有沒有辦法設置這個現有的virtualenv,以便它不使用全局site-packages目錄?每當我啓動時,例如mercurial,這主要是通過得到這個警告來激發的: UserWarning: Module X was already imported from

相關,但是做相反的:Revert the `--no-site-packages` option with virtualenv。這意味着我需要的只是一個lib/no-global-site-packages.txt文件,但其中一個似乎沒有效果。

回答

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 ex isting virtualenv。這將重新安裝virtualenv,重新配置它以防止訪問全局包,同時保持已安裝的包。

+0

嘗試了這一點,但與python2.7它告訴我,我問了一個錯誤的問題......' - 無站點包標誌已被棄用;它現在是默認行爲。「而且我仍然收到UserWarning的。我可能會接受這個答案,因爲它在技術上是我在標題中的正確答案,但仍然有些錯誤。 – keflavich

+0

你是對的。考慮到最新版本的默認行爲,修正了最正確答案的答案。 –

相關問題