2016-10-16 30 views
0

雖然上一個新的Python項目的工作,並試圖通過虛擬環境來學習我的方式,我有以下問題絆倒兩次:Python的系統庫泄漏到虛擬環境

  • 創建我的虛擬環境稱爲VENV 。正在運行pip freeze什麼也沒有顯示。
  • 我使用pip安裝依賴項來安裝我的依賴項。 venv庫開始填充,正如pip freeze所證實的那樣。
  • 幾天後,我回到我的項目中,在通過source venv/bin/activate激活虛擬環境後,運行pip freeze時,我看到了安裝在系統python發行版中的所有庫的列表(我使用的是Mac OS 10.9 .5),而不是我希望保留在我的虛擬環境中的小子集。

我確定我必須在兩者之間做錯事,但我不知道怎麼會發生這種情況。有任何想法嗎?


更新:看着this答案 後,我才意識到是運行pip freeze時,這是被調用的pip命令是一個在/usr/local/bin/pip而不是我的虛擬環境中的一個。所以虛擬環境很好,但我想知道路徑中的哪些變化可能會導致這種情況,以及如何防止它們再次發生(我的PYTHONPATH變量未設置)。

+0

如果您使用mkvirtualenv命令,它支持no-site-packages選項。 –

+0

@KenjiNoguchi但問題並不存在,最初...只有大約一個星期左右,我遇到了這個問題... – jimijazz

回答

0

我意識到當我的虛擬環境文件夾在系統中移動時出現問題。修復方法是修改位於venv/bin文件夾內的activatepip腳本以指向新venv位置,如this答案所示。現在我的點凍結顯示正確的文件。