本文共分為三部分:
1. virtualenv創建python虛擬環境
2. pip與virtualenv安裝、卸載和管理Python包
3. UBUNTU下舒服的python開發環境
virtualenv
>>轉自 這里
virtualenv用於創建獨立的Python環境,多個Python相互獨立,互不影響,它能夠:
1. 在沒有權限的情況下安裝新套件
2. 不同應用可以使用不同的套件版本
3. 套件升級不影響其他應用
安裝
sudo apt-get install python-virtualenv
使用方法
virtualenv [虛擬環境名稱]
如,創建**ENV**的虛擬環境
virtualenv ENV
默認情況下,虛擬環境會依賴系統環境中的site packages,就是說系統中已經安裝好的第三方package也會安裝在虛擬環境中,如果不想依賴這些package,那么可以加上參數 --no-site-packages
建立虛擬環境
virtualenv --no-site-packages [虛擬環境名稱]
啟動虛擬環境
cd ENV
source ./bin/activate
注意此時命令行會多一個(ENV)
,ENV為虛擬環境名稱,接下來所有模塊都只會安裝到該目錄中去。
退出虛擬環境
deactivate
在虛擬環境安裝Python套件
Virtualenv 附帶有pip安裝工具,因此需要安裝的套件可以直接運行:
pip install [套件名稱]
如果沒有啟動虛擬環境,系統也安裝了pip工具,那么套件將被安裝在系統環境中,為了避免發生此事,可以在~/.bashrc
文件中加上:
export PIP_REQUIRE_VIRTUALENV=true
或者讓在執行pip的時候讓系統自動開啟虛擬環境:
export PIP_RESPECT_VIRTUALENV=true
Virtualenvwrapper
Virtaulenvwrapper是virtualenv的擴展包,用於更方便管理虛擬環境,它可以做:
1. 將所有虛擬環境整合在一個目錄下
2. 管理(新增,刪除,復制)虛擬環境
3. 切換虛擬環境
4. ...
安裝
sudo easy_install virtualenvwrapper
此 時還不能使用virtualenvwrapper,默認virtualenvwrapper安裝在/usr/local/bin下面,實際上你需要運行 virtualenvwrapper.sh文件才行,先別急,打開這個文件看看,里面有安裝步驟,我們照着操作把環境設置好。
-
創建目錄用來存放虛擬環境
mkdir $HOME/.virtualenvs
-
在~/.bashrc中添加行: export WORKON_HOME=$HOME/.virtualenvs
-
在~/.bashrc中添加行:source /usr/local/bin/virtualenvwrapper.sh
-
運行:
source ~/.bashrc
此時virtualenvwrapper就可以使用了。
列出虛擬環境列表
workon
也可以使用
lsvirtualenv
新建虛擬環境
mkvirtualenv [虛擬環境名稱]
啟動/切換虛擬環境
workon [虛擬環境名稱]
刪除虛擬環境
rmvirtualenv [虛擬環境名稱]
離開虛擬環境
deactivate
=====================================================================================================================================================================================
pip與virtualenv
>>原載於 這里
pip可以很方便的安裝、卸載和管理Python的包。
virtualenv則可以建立多個獨立的虛擬環境,各個環境中擁有自己的python解釋器和各自的package包,互不影響。
pip和virtualenv可以很好的協同工作,同時使用這兩個工具非常方便。
一般先安裝pip,安裝好后,pip install virtualenv就可以自動從網上下載並安裝virtualenv了。然后virtualenv env1就可以創建一個名為env1的虛擬環境了,進入這個虛擬環境后,再使用pip install安裝其它的package就只會安裝到這個虛擬環境里,不會影響其它虛擬環境或系統環境。
當需要將虛擬環境env1遷移或復制到另一個虛擬環境(可能不在同一台機器上)env2時,首先仍然需要在目的機器上安裝pip和virtualenv,然后采用以下方法之一安裝其他的package:
- 1.直接將env1里的文件全部復制到env2里,然后修改涉及路徑的文件。此種方法可能正常使用,但顯然不是好辦法。
- 2.進入原虛擬環境env1,然后執行pip freeze > requirements.txt將包依賴信息保存在requirements.txt文件中。然后進入目的虛擬環境env2,執行pip install -r requirements.txt,pip就會自動從網上下載並安裝所有包。
- 3.pip默認會從pypi服務器(http://pypi.python.org/simple)下載包的安裝文件,如果目的機器無法連外網,則可以采用以下辦法:
- 3.1搭建自己的pypi服務器。專業的,可以使用第三方的軟件包來搭建一個完整的pypi鏡像服務器,參考http://www.worldhello.net/2011/03/14/2357.html。更快速的方法只需要一條命令python -m SimpleHTTPServer即可完成搭建服務器,具體的目錄結構可參考原pypi服務器,簡而言之,就是把安裝文件打包放入目錄即可。搭建好服務器之后,在目的虛擬環境中,就可以使用pip來安裝了,命令如:pip install -i http://127.0.0.1:8000/ -r requirements.txt
- 3.2如果你實在不想搭建pypi服務器,也有辦法。首先將所有包的安裝文件下載下來,可以手動下載,也可以使用pip,如pip install -d /path/to/save/ -r requirements.txt,然后自己修改requirements.txt文件,將每一行改成對應的包的安裝文件的路徑。最后在目的虛擬環境中使用pip安裝,如pip install -r requirements.txt即可。
- 3.3還有一種途徑,就是pip提供的bundle選項。首先執行pip bundle MyEnv.pybundle -r requirements.txt,將生成一個MyEnv.pybundle文件,該文件夾包含所有包的安裝文件(注意必須后綴名必須是.pybundle),默認是重新從pypi服務器下載安裝文件的,如果願意,也可以利用3.1中的方法,指定本地的pypi服務器。然后在目的虛擬環境中執行pip install MyEnv.pybundle即可。
- 4.pip install還有許多有用的選項,如--download-cache=DIR可以指定下載安裝文件時緩存至DIR路徑,下次需要時則直接讀取緩存文件。具體選項可以執行pip help install得到詳細信息。
- 5.另外,還可以將自己的包上傳至pypi服務器,分享給所有人。具體可參考http://guide.python-distribute.org/creation.html和http://matrix.42qu.com/10734668。
============================================================================================================================