Python虛擬環(huán)境配置

虛擬環(huán)境

虛擬環(huán)境是一個將不同項目所需求的依賴分別放在獨立的地方的一個工具,它給這些工程創(chuàng)建虛擬的Python環(huán)境。它解決了“項目X依賴于版本1.x,而項目Y需要項目4.x”的兩難問題,而且使你的全局site-packages目錄保持干凈和可管理。

比如,你可以工作在一個需求Django 1.3的工程,同時維護(hù)一個需求Django 1.0的工程。

virtualenv

  • virtualenv 是一個創(chuàng)建隔絕的Python環(huán)境的工具。virtualenv創(chuàng)建一個包含所有必要的可執(zhí)行文件的文件夾,用來使用Python工程所需的包。
  • 通過pip安裝virtualenv

基本使用

  • 為一個工程創(chuàng)建一個虛擬環(huán)境:
cd my_project_folder
virtualenv venv
  • virtualenv venv 將會在當(dāng)前的目錄中創(chuàng)建一個文件夾,包含了Python可執(zhí)行文件,以及 pip 庫的一份拷貝,這樣就能安裝其他包了。虛擬環(huán)境的名字(此例中是 venv )可以是任意的;若省略名字將會把文件均放在當(dāng)前目錄。
  • 在任何你運(yùn)行命令的目錄中,這會創(chuàng)建Python的拷貝,并將之放在叫做 venv 的文件中。
  • 你可以選擇使用一個Python解釋器:
virtualenv -p /usr/bin/python2.7 venv

這將會使用 /usr/bin/python2.7 中的Python解釋器。

  • 要開始使用虛擬環(huán)境,其需要被激活:
source venv/bin/activate

當(dāng)前虛擬環(huán)境的名字會顯示在提示符左側(cè)(比如說 (venv)你的電腦:你的工程 用戶名$)以讓你知道它是激活的。從現(xiàn)在起,任何你使用pip安裝的包將會放在 ``venv 文件夾中,與全局安裝的Python隔絕開。

像平常一樣安裝包,比如:

pip install requests
如果你在虛擬環(huán)境中暫時完成了工作,則可以停用它:
deactivate

這將會回到系統(tǒng)默認(rèn)的Python解釋器,包括已安裝的庫也會回到默認(rèn)的。

  • 要刪除一個虛擬環(huán)境,只需刪除它的文件夾。(要這么做請執(zhí)行 rm -rf venv )

然后一段時間后,你可能會有很多個虛擬環(huán)境散落在系統(tǒng)各處,你將有可能忘記它們的名字或者位置。

其他注意

  • 運(yùn)行帶 --no-site-packages 選項的 virtualenv 將不會包括全局安裝的包。這可用于保持包列表干凈,以防以后需要訪問它。(這在 virtualenv 1.7及之后是默認(rèn)行為)
  • 為了保持你的環(huán)境的一致性,“冷凍住(freeze)”環(huán)境包當(dāng)前的狀態(tài)是個好主意。要這么做,請運(yùn)行:
    pip freeze > requirements.txt
    這將會創(chuàng)建一個 requirements.txt 文件,其中包含了當(dāng)前環(huán)境中所有包及各自的版本的簡單列表。你可以使用 “pip list”在不產(chǎn)生requirements文件的情況下,查看已安裝包的列表。這將會使另一個不同的開發(fā)者(或者是你,如果你需要重新創(chuàng)建這樣的環(huán)境)在以后安裝相同版本的相同包變得容易。
  • pip install -r requirements.txt,這能幫助確保安裝、部署和開發(fā)者之間的一致性。
    最后,記住在源碼版本控制中排除掉虛擬環(huán)境文件夾,可在ignore的列表中加上它。

virtualenvwrapper

  • virtualenvwrapper 提供了一系列命令使得和虛擬環(huán)境工作變得愉快許多。它把你所有的虛擬環(huán)境都放在一個地方。
  • 安裝(確保 virtualenv 已經(jīng)安裝了):
pip install virtualenvwrapper
export WORKON_HOME=~/Envs
source /usr/local/bin/virtualenvwrapper.sh
(virtualenvwrapper 的完整安裝指引.)
  • 對于Windows,你可以使用 virtualenvwrapper-win 。

基本使用

  • 創(chuàng)建一個虛擬環(huán)境:
    mkvirtualenv venv, 這會在 ~/Envs 中創(chuàng)建 venv 文件夾。
  • 在虛擬環(huán)境上工作:
    workon venv
  • 你可以創(chuàng)建一個項目,它會創(chuàng)建虛擬環(huán)境,并在 $PROJECT_HOME 中創(chuàng)建一個項目目錄。當(dāng)你使用 workon myproject 時,會 cd -ed 到項目目錄中。
  • mkproject myproject
    virtualenvwrapper 提供環(huán)境名字的tab補(bǔ)全功能。當(dāng)你有很多環(huán)境,并且很難記住它們的名字時,這就顯得很有用。
  • workon 也能停止你當(dāng)前所在的環(huán)境,所以你可以在環(huán)境之間快速的切換。
  • 停止是一樣的:deactivate
  • 刪除:rmvirtualenv venv
  • 其他有用的命令:
    • lsvirtualenv,列舉所有的環(huán)境。
    • cdvirtualenv,導(dǎo)航到當(dāng)前激活的虛擬環(huán)境的目錄中,比如說這樣你就能夠瀏覽它的 site-packages 。
    • cdsitepackages,和上面的類似,但是是直接進(jìn)入到 site-packages 目錄中。
    • lssitepackages,顯示 site-packages 目錄中的內(nèi)容。
    • virtualenvwrapper, 命令的完全列表 。

virtualenv-burrito

有了 virtualenv-burrito ,你就能使用單行命令擁有virtualenv + virtualenvwrapper的環(huán)境。

  • autoenv
    當(dāng)你 cd 進(jìn)入一個包含 .env 的目錄中,就會 autoenv 自動激活那個環(huán)境。
  • 使用 brew 在Mac OS X上安裝它:

$ brew install autoenv
在Linux上:

$ git clone git://github.com/kennethreitz/autoenv.git ~/.autoenv

$ echo 'source ~/.autoenv/activate.sh' >> ~/.bashrc

現(xiàn)在基本都是用pyenv了,只不過pyenv下載python很慢在國內(nèi),建議使用
國內(nèi)源。eg:
wget http://mirrors.sohu.com/python/2.7.13/Python-2.7.13.tar.xz -P ~/.pyenv/cache
然后再執(zhí)行pyenv install 2.7.13
實際上就是下去國內(nèi)源下載包到緩存中,然后執(zhí)行安裝命令。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容