虛擬環(huán)境
背景
有兩個項目,A和B痘绎。都依賴一個模塊m津函,但是他們所需要的版本不一樣。默認的情況是孤页,只能安裝一個版本的模塊m尔苦。所以一臺電腦上,兩個項目無法同時運行行施。
解決方案
創(chuàng)建一個獨立的局部python環(huán)境蕉堰,在這個環(huán)境中,安裝相關的庫悲龟,如果有多個項目,則創(chuàng)建多個局部環(huán)境冰寻。平行宇宙即視感须教。
虛擬環(huán)境準備
想要創(chuàng)建平行宇宙,還得依賴一個三方包:virtualenv
安裝命令:pip install virtualenv
使用虛擬環(huán)境
創(chuàng)建一個虛擬環(huán)境
使用命令:virtualenv dirname斩芭,也可以先cd進目標目錄轻腺,使用virtualenv .
虛擬環(huán)境中包括:python解釋器,包管理工具划乖,三方包贬养。
因為這是用基于python3的virtualenv創(chuàng)建的虛擬環(huán)境,所以里面的python解釋器是python3版本的琴庵。使用-p參數(shù)误算,可以指定虛擬環(huán)境中創(chuàng)建的python解釋起版本仰美。
virtualenv test2 -p python2 :創(chuàng)建了一個基于 python2 的虛擬環(huán)境
可以在創(chuàng)建的過程中使用參數(shù) --system-site-packages不加上這個參數(shù),檢索包的時候只在此虛擬環(huán)境中進行檢索儿礼,加上可以在系統(tǒng)的三方包中找咖杂。
激活虛擬環(huán)境
使用命令:source dirname/bin/activate
在現(xiàn)在的環(huán)境下,所使用的python已經(jīng)是虛擬環(huán)境中的了蚊夫。
提示符最前面表示了現(xiàn)在所做的所有操作都是在虛擬環(huán)境中進行的诉字,這時安裝的三方包都會在虛擬環(huán)境中。終端關閉知纷,虛擬環(huán)境也會自動關閉壤圃。
安裝 pygame 模塊進行測試:
退出虛擬環(huán)境
使用命令:deactivate
如果不想保留虛擬環(huán)境,直接將環(huán)境目錄刪除即可
將項目進行移植
連同虛擬環(huán)境一起拷貝給別人(可能出現(xiàn)第三方包安裝太多琅轧,項目整體比較龐大的情況)
在虛擬環(huán)境中伍绳,凍結依賴需求文本,把項目和需求文本給別人鹰晨,別人自己建一個虛擬環(huán)境墨叛,根據(jù)需求文本安裝相應的庫進行運行即可。
用pycharm操作虛擬環(huán)境
新建python項目
注意上面提供了選擇python解釋器的地方模蜡,建立新的虛擬環(huán)境或者使用全局的解釋器漠趁。
項目的結構
跟終端上用命令生成的是差不多的。(main.py是我自己加的)
安裝庫的操作
單擊菜單欄上的File>Setting忍疾,選擇左邊的Projiect
可以進行項目解釋器的選擇闯传,以及虛擬環(huán)境中三方包的安裝。
虛擬環(huán)境的管理
集中式虛擬環(huán)境管理
安裝virtualenvwrapper卤妒,是基于virtualenv甥绿,開發(fā)的一個工具包。
創(chuàng)建虛擬環(huán)境:mkvirtualenv envname则披,這個會將虛擬環(huán)境創(chuàng)建在特定的虛擬環(huán)境中共缕。(但往往和目標項目不在一起,這種管理方式也不太推薦)
查看所有的虛擬環(huán)境:lsvirtualenv
激活特定的虛擬環(huán)境:workon envname
關閉虛擬環(huán)境:deactivate
刪除特定的虛擬環(huán)境:rmvirtualenv envame
面向項目的虛擬環(huán)境管理
引言
安裝Pipenv士复,面向項目图谷,有很動東西自動幫我們完成,其他的功能操作也更加簡單阱洪,使我們的精力主要放在項目的業(yè)務邏輯上便贵。
優(yōu)勢
不用分別使用pip和virtualenv,直接使用一個工具Pipenv即可冗荸。
可以自動幫你創(chuàng)建虛擬環(huán)境承璃,安裝第三方庫。
自動記錄項目依賴的第三方庫
使用Pipfile和Pipfile.lock取代了requirements.txt
官方文檔
安裝方式
使用方法
創(chuàng)建虛擬環(huán)境
使用命令
pipenv --three :創(chuàng)建基于 python3 的虛擬環(huán)境
`pipenv --two` :創(chuàng)建基于 python2 的虛擬環(huán)境
也可以使用命令:pipenv --python python3.6指定項目所用的解釋器版本蚌本。
項目中只生成了一個文件盔粹,這個文件用來記錄項目所用的python解釋器版本隘梨,三方庫信息等,另外玻佩,虛擬環(huán)境被放在了/home/tc/.local/share/virtualenvs/project2-eXZ-veQ3出嘹,進去看看有什么東西:
還是熟悉的結構,還是熟悉的名稱咬崔。
一些基本操作:查看項目路徑税稼,項目依賴的虛擬環(huán)境路徑,所使用的python解釋器版本垮斯。
激活虛擬環(huán)境
使用命令:pipenv shell(要保證當前位置在項目文件夾下)
解釋器已經(jīng)是虛擬環(huán)境中的了郎仆。命令行最前面也有提示符。
使用虛擬環(huán)境
按照上面的命令安裝pygame庫兜蠕,結果出奇地慢扰肌,最后還卡住了。打開項目文件夾下的Pipfile文件熊杨,進行一些配置曙旭,修改 url :
這個文件記錄了該項目包的安裝源和安裝的三方包的一些信息。
再次安裝晶府,成功了桂躏。可以查看下Pipfile文件:
最后面多了安裝包的記錄信息川陆。使用命令pipenv graph查看三方包及依賴關系(用縮進表示了包之間的依賴)
退出虛擬環(huán)境
創(chuàng)建時剂习,提示信息說的比較清楚了,是創(chuàng)建了一個子shell较沪,使用exit命令推出就行了鳞绕。
刪除虛擬環(huán)境
使用命令:pipenv --rm,也要在項目的目錄下使用這個命令尸曼。
虛擬環(huán)境沒了们何,項目路徑下的文件還在。為啥還存在控轿?看下面冤竹。
項目移植
只要將項目代碼,Pipfile解幽,Pipfile.lock進行轉(zhuǎn)移即可(也就是整個項目文件夾)。
然后執(zhí)行pipenv install烘苹,會根據(jù)配置信息自動還原出原來的虛擬環(huán)境躲株。
在Python目錄下有project2和test項目目錄,將project2中的配置文件拷貝到test中镣衡,然后執(zhí)行pipenv install霜定,進行虛擬環(huán)境還原档悠。
注:喜歡python + qun:839383765 可以獲取Python各類免費最新入門學習資料!