2012-12-31 32 views
0

我已經開始使用virtualenv了,我有疑問,任何提示都會受到歡迎。virtualenv + apt-get混淆

這是我的情景:

  1. 我主動的virtualenv和安裝一個軟件包XXX(使用apt-get的),在我的virtualenv /站點包部署一些Python的東西。

  2. 停用的virtualenv

  3. 運行apt-get升級XXX

在這種情況下,與XXX的蟒蛇的東西,會發生什麼?它安裝在全球網站包?有什麼可以打破?

很抱歉,如果這是一個愚蠢的問題,但Python包的部署是我有點模糊:/

回答

5

使用apt-get,包總是會得到安裝全系統的,而不是在virtualenv中。這一點,無論virtualenv是否當前活躍。

在你的情況,這意味着可以安裝包全系統1,並且安裝在3

升級如果你想在virtualenv中安裝的東西,越接近你可以得到apt-get使用pip


實施例:

virtualenv ENV 
source ENV/bin/activate 
pip install django 

Django是現在在安裝在的virtualenv,但不是系統範圍的。

相反,執行:apt-get install python-django會在系統範圍內安裝,但不會在virtualenv中安裝。

+0

感謝托馬斯,但根據http://www.virtualenv.org/en/latest/#activate-script當你做'源斌/激活'你正在改變$ PATH指向virtualenv,如何apt-在系統範圍內部署python文件,而不是將它們部署在我的本地環境中? – Cartucho

+0

@fcrazy很簡單:'apt-get'不會關心你的'$ PATH'。 'apt-get'將東西安裝到系統所在的位置,這不是由你決定的:)'pip'是你想要在這裏使用的工具,不用擔心,它很容易使用! –

+0

@fcrazy你可能想看看這裏,關於'apt-get'安裝文件的更多細節:http://askubuntu.com/questions/165361/how-to-set-the-path-where-sudo -apt-get-installs –