2012-12-02 190 views
1

我有我的Django項目文件夾,裏面,我有我的virtualenv文件夾混淆在python Django的虛擬環境

我有幾個問題

  1. 我的包已經安裝在主安裝以及在虛擬環境中。不要將這些軟件包混合在一起。我的意思是如果我在主要安裝和虛擬環境中的新版本有舊版本系統如何知道哪一個選擇

  2. 假設我將我的項目文件夾移動到新計算機比我可以使用相同的虛擬env文件夾,因爲它是在相同的應用程序目錄或我必須從頭再來

  3. 我如何知道PIP安裝包到虛擬ENV或主安裝

+0

我認爲你的問題是你可能會混淆哪個包在哪個狀態下使用。當你設置虛擬環境時,你可以通過使用'--no-site-packages'避免這個問題,這個虛擬環境不包括任何東西,從你的默認站點pacakge到你的虛擬環境。 –

+0

我的意思是說,如果我使用s系統pacakges那麼那些將得到安裝在virtualenv或虛擬env使用它從主系統 – user825904

回答

2
  1. 除非你創建的virtualenv - 系統現場-p包裹,包裹根本不混合。如果他們這樣做,Virtualenv有優先權。

  2. 如果路徑沒有改變,有可能重用它。如果路徑改變,你可以make a virtualenv --relocatable。但是你應該創建一個需求文件並且能夠在一個pip -r req.txt命令中重新生成一個新的虛擬環境。

  3. 如果virtualenv被激活,pip將安裝在virtualenv中,它具有優先權。

+0

謝謝。我不喜歡2和3,但仍然沒有得到第一點。那些網站包選項會帶來什麼結果。是否有任何方法不能使用主安裝中的單個軟件包。我的意思是有可能主要設施有0個包,我的整個項目只依賴於虛擬環境。 – user825904

+0

使用'--no-site-packages'選項。 – Ohad

+1

@Ohad:'--no-site-packages'現在是默認設置。使用'--no-site-packages',virtualenv不會訪問系統站點包。使用'--system-site-packages',當virtualenv被激活時,virtualenv將啓用系統站點包。您可以運行'pip freeze'來查看已安裝軟件包的列表,並使用'pip uninstall'刪除您不需要的軟件包。 – jpic