python入門系列:Python使用虛擬環(huán)境

虛擬環(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各類免費最新入門學習資料!

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末望浩,一起剝皮案震驚了整個濱河市辖所,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌磨德,老刑警劉巖缘回,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異典挑,居然都是意外死亡酥宴,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進店門您觉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拙寡,“玉大人,你說我怎么就攤上這事琳水∷粮猓” “怎么了?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵在孝,是天一觀的道長诚啃。 經(jīng)常有香客問我,道長浑玛,這世上最難降的妖魔是什么绍申? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮顾彰,結果婚禮上极阅,老公的妹妹穿的比我還像新娘。我一直安慰自己涨享,他們只是感情好筋搏,可當我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著厕隧,像睡著了一般奔脐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上吁讨,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天髓迎,我揣著相機與錄音,去河邊找鬼建丧。 笑死排龄,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的翎朱。 我是一名探鬼主播橄维,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼尺铣,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了争舞?” 一聲冷哼從身側響起凛忿,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎竞川,沒想到半個月后店溢,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡流译,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年逞怨,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片福澡。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡叠赦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出革砸,到底是詐尸還是另有隱情除秀,我是刑警寧澤,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布算利,位于F島的核電站册踩,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏效拭。R本人自食惡果不足惜暂吉,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望缎患。 院中可真熱鬧慕的,春花似錦、人聲如沸挤渔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽判导。三九已至嫉父,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間眼刃,已是汗流浹背绕辖。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留擂红,地道東北人仪际。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親弟头。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,947評論 2 355

推薦閱讀更多精彩內(nèi)容