歡迎加入QQ討論群258996829
麥子學(xué)院 頭像
蘋果6袋
6
麥子學(xué)院

Python學(xué)習(xí)之Virtualenv和pip使用詳解

發(fā)布時間:2017-08-19 21:07  回復(fù):0  查看:3608   最后回復(fù):2017-08-19 21:07  
本文和大家分享的主要是python Virtualenv pip的使用相關(guān)內(nèi)容,一起來看看吧,希望對大家 學(xué)習(xí)python有所幫助。
   0X00 安裝環(huán)境
  我們在Python 開發(fā)和學(xué)習(xí)過程中需要用到各種庫,然后在各個不同的項目和作品里可能用的版本還不一樣,正因為有這種問題的存在才催生了  virtualenv  的誕生。virtualenv 可以在電腦上創(chuàng)建一個虛擬環(huán)境,可以針對每一個項目創(chuàng)建一個虛擬環(huán)境,這樣就不用擔(dān)心各個不同的項目用不同版本的庫的時候出現(xiàn)的沖突了。  下面的內(nèi)容只適用于Linux/OSX,未經(jīng)Windows環(huán)境測試
  要使用這個功能還是需要安裝,安裝virtualenv 肯定就得直接用 pip 安裝了,  pip install virtualenv  就可以輕松裝上了。裝好之后我們就可以來測試一波了。
   0X01 初始化一個空的工作環(huán)境
  首先在一個空的環(huán)境中執(zhí)行  virtualenv --no-site-packages test_env  ,就是在當(dāng)前目錄創(chuàng)建一個名為test_env 的虛擬環(huán)境。這里 --no-site-packages  參數(shù)是指不從全局的Python 中攜帶任何第三方庫。就比如說你在全局 Python 中安裝了 xxx 庫,在不用這個參數(shù)來創(chuàng)建虛擬環(huán)境時,虛擬環(huán)境中也會帶著這個庫;但是加上了這個參數(shù),虛擬環(huán)境中就是一個純凈的 Python ,沒有這些庫。
  root in ~ λ virtualenv -- no-site-packages test_env
  New  python executable in /root/test_env/bin/ python
  Please  make sure you remove any  previous custom paths from your /root/.pydistutils.cfg  file.
  Installing setuptools, pip, wheel...done.
  然后可以通過  source test_env/bin/activate  可以進入(激活)到這個虛擬環(huán)境里去。進入到虛擬環(huán)境中之后,通常情況下你的命令提示符最前面會出現(xiàn)一個括號,括號里面寫著你虛擬環(huán)境的名字。
  這里說是虛擬環(huán)境,其實一切都是真實的。只是說你在激活了這個環(huán)境,在這個環(huán)境下用pip 安裝的庫都放在  test_env  中。
  也可以通過  deactivate  來退出這個環(huán)境。
   0X02 批量導(dǎo)出和安裝庫
  比如我們開發(fā)了一個項目,里面用到了pymongo/requests/flask/pymysql 等等等等十幾二十個庫,還要指定特定的版本,那么當(dāng)把一個項目從機器 A 遷移到機器 B 的時候就會很麻煩。需要手動記錄每個庫和版本,還要逐個去安裝,非常麻煩。所以針對這個問題 pip 已經(jīng)有了非常完善的解決方案。
  (test_env) root  in ~ λ pip freeze > requirements.txt  #  導(dǎo)出已安裝的庫
  這個命令可以導(dǎo)出當(dāng)前環(huán)境中安裝好的所有第三方庫,并且是以一個標(biāo)準(zhǔn)的格式導(dǎo)出的。所以一般一個標(biāo)準(zhǔn)的python 項目的根目錄都會有這個名為  requirements.txt  的依賴文件。
  既然可以一次性導(dǎo)出,那么必然可以一次性安裝嘍。通過這種方式就可以將上面導(dǎo)出的特定版本的所有庫一次性全裝上。配合virtualenv 可以快速的部署一個 Python 項目,并且不會搞亂其他的 Python 項目環(huán)境。
  (test_env_1) root  in ~ λ pip install -r requirements.txt
來源:Shawn's Blog

您還未登錄,請先登錄

熱門帖子

最新帖子

?