簡體   English   中英

Virtualenv:全局站點包與虛擬環境中的站點包

[英]Virtualenv: global site-packages vs the site-packages in the virtual environment

  1. 如果我在全局站點包和本地站點中都安裝了某個包,那么哪個包將被導入? 這會工作還是會出錯?
  2. 我應該在全球網站包中放置哪些包,哪些包放在本地包中?

上一個答案結束了問題1,但忽略了問題2。

我見過的全局最佳實踐:

首先,核心Python包,因為這些不會隨着向后兼容的問題而改變,除非你升級主要版本,並且你會希望python升級的任何安全修復程序自動應用到你的virtualenvs。

第二,easy_install或pip安裝到每個virtualenv但不經常更改的軟件包 - 例如MySQLdb / psycopg和PIL。

幾乎所有其他內容都應該包含在你的virtualenv的軟件包中(我強烈建議使用pip需求文件和virtualenvwrapper,以使其在其他機器上設置最簡單,最容易設置)。

默認情況下,新創建的虛擬環境可以訪問全局site-packages目錄,除非使用--no-site-packages創建。 在激活某些環境的情況下調用easy_install(安裝新軟件包)將導致本地覆蓋全局站點包中已存在的軟件包(類似於繼承)。 當缺失時,環境將使用自己的本地包 - 全局包。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM