Python新利器之pipenv

前言

之前學(xué)習(xí)異步asyncio庫的時(shí)候蔑赘,因?yàn)?code>asyncio庫支持Python3.5以上的版本,而我的Ubuntu14.04只有Python3.4乡摹,雖然下載了Python3.6役耕,但是想直接利用ipython3或者pip3調(diào)用Python3.6相關(guān)的東西有點(diǎn)困難,可能是我手法不對(duì)聪廉,有點(diǎn)混亂瞬痘。

之前只是簡單的用過virtualenv故慈,直到發(fā)現(xiàn)了這個(gè)pipenv,有點(diǎn)吊炸天框全。

Python開發(fā)者應(yīng)該聽過pip察绷、easy_install和virtualenv,如果看過我的書應(yīng)該還知道 virtualenvwrapper津辩、virtualenv-burrito和autoenv拆撼,再加上pyvenv、venv(Python 3標(biāo)準(zhǔn)庫)喘沿、pyenv…
額闸度,是不是有種發(fā)懵的感覺?
那么現(xiàn)在有個(gè)好消息蚜印,你可以只使用終極方案: pipenv + autoenv(可選)莺禁。

pipenv 都包含什么?

pipenv 是 Pipfile 主要倡導(dǎo)者窄赋、requests 作者 Kenneth Reitz 寫的一個(gè)命令行工具哟冬,主要包含了Pipfile、pip忆绰、click浩峡、requests和virtualenv。Pipfile和pipenv本來都是Kenneth Reitz的個(gè)人項(xiàng)目较木,后來貢獻(xiàn)給了pypa組織红符。Pipfile是社區(qū)擬定的依賴管理文件,用于替代過于簡陋的 requirements.txt 文件伐债。

Pipfile的基本理念是:

Pipfile 文件是 TOML 格式而不是 requirements.txt 這樣的純文本预侯。
一個(gè)項(xiàng)目對(duì)應(yīng)一個(gè) Pipfile,支持開發(fā)環(huán)境與正式環(huán)境區(qū)分峰锁。默認(rèn)提供 default 和 development 區(qū)分萎馅。
提供版本鎖支持,存為 Pipfile.lock虹蒋。
click是Flask作者 Armin Ronacher 寫的命令行庫糜芳,現(xiàn)在Flask已經(jīng)集成了它。

接下來魄衅,我們看看怎么使用它吧

安裝

$ pip install pipenv

用法

在使用pipenv之前峭竣,必須徹底的忘記pip這個(gè)東西

新建一個(gè)準(zhǔn)備當(dāng)環(huán)境的文件夾pipenvtest,并cd進(jìn)入該文件夾:
pipenv --three 會(huì)使用當(dāng)前系統(tǒng)的Python3創(chuàng)建環(huán)境

pipenv --python 3.6 指定某一Python版本創(chuàng)建環(huán)境

pipenv shell 激活虛擬環(huán)境

pipenv --where 顯示目錄信息
/home/jiahuan/pipenvtest

pipenv --venv 顯示虛擬環(huán)境信息
/home/jiahuan/.local/share/virtualenvs/pipenvtest-9KKRH3OW

pipenv --py 顯示Python解釋器信息
/home/jiahuan/.local/share/virtualenvs/pipenvtest-9KKRH3OW/bin/python

pipenv install requests 安裝相關(guān)模塊并加入到Pipfile

pipenv install django==1.11 安裝固定版本模塊并加入到Pipfile

pipenv graph 查看目前安裝的庫及其依賴

requests==2.18.4
  - certifi [required: >=2017.4.17, installed: 2017.11.5]
  - chardet [required: <3.1.0,>=3.0.2, installed: 3.0.4]
  - idna [required: >=2.5,<2.7, installed: 2.6]
  - urllib3 [required: >=1.21.1,<1.23, installed: 1.22]

pipenv check檢查安全漏洞

Checking PEP 508 requirements…
Passed!
Checking installed package safety…
All good! 

pipenv uninstall --all 卸載全部包并從Pipfile中移除

Found 5 installed package(s), purging…
Uninstalling certifi-2017.11.5:
  Successfully uninstalled certifi-2017.11.5
Uninstalling chardet-3.0.4:
  Successfully uninstalled chardet-3.0.4
Uninstalling idna-2.6:
  Successfully uninstalled idna-2.6
Uninstalling requests-2.18.4:
  Successfully uninstalled requests-2.18.4
Uninstalling urllib3-1.22:
  Successfully uninstalled urllib3-1.22

跟上面graph命令顯示的內(nèi)容對(duì)應(yīng)

出現(xiàn)個(gè)報(bào)錯(cuò)

之后隨意測(cè)試的時(shí)候 使用pipenv --two 想創(chuàng)建一個(gè)基于Python2.7的虛擬環(huán)境時(shí)出了點(diǎn)問題晃虫。報(bào)了這樣一個(gè)錯(cuò)誤
TypeError: 'NoneType' object is not subscriptable
而使用pipenv --python 3.6卻沒有問題(自帶的是Python3.5皆撩,Python3.6新安裝的,這讓我很納悶,明天去公司試一試扛吞。

經(jīng)過測(cè)試:在公司ubuntu機(jī)器上可以使用 ,今晚再回家里試試...
.....
回家仔細(xì)觀察了報(bào)錯(cuò)呻惕,原來是我pip源的配置文件出了點(diǎn)錯(cuò),多了個(gè)空格滥比,囧 ~
OK亚脆,那就沒問題
==========================================
2018/01/24更新
pipenv install 安裝模塊時(shí)有時(shí)候會(huì)很慢
可以設(shè)置國內(nèi)源:Pipfile文件中[source]下面url屬性,比如修改成:url = "https://pypi.tuna.tsinghua.edu.cn/simple"

小結(jié)

這里寫了一個(gè)pipenv常用的命令盲泛,很不錯(cuò)的工具濒持,pip與virtualenv的結(jié)合體,值得一用寺滚。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末弥喉,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子玛迄,更是在濱河造成了極大的恐慌,老刑警劉巖棚亩,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蓖议,死亡現(xiàn)場離奇詭異,居然都是意外死亡讥蟆,警方通過查閱死者的電腦和手機(jī)勒虾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瘸彤,“玉大人修然,你說我怎么就攤上這事≈士觯” “怎么了愕宋?”我有些...
    開封第一講書人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長结榄。 經(jīng)常有香客問我中贝,道長,這世上最難降的妖魔是什么臼朗? 我笑而不...
    開封第一講書人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任邻寿,我火速辦了婚禮,結(jié)果婚禮上视哑,老公的妹妹穿的比我還像新娘绣否。我一直安慰自己,他們只是感情好挡毅,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開白布蒜撮。 她就那樣靜靜地躺著,像睡著了一般慷嗜。 火紅的嫁衣襯著肌膚如雪淀弹。 梳的紋絲不亂的頭發(fā)上丹壕,一...
    開封第一講書人閱讀 51,754評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音薇溃,去河邊找鬼菌赖。 笑死,一個(gè)胖子當(dāng)著我的面吹牛沐序,可吹牛的內(nèi)容都是我干的琉用。 我是一名探鬼主播,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼策幼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼邑时!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起特姐,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤晶丘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后唐含,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體浅浮,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年捷枯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了滚秩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡淮捆,死狀恐怖郁油,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情攀痊,我是刑警寧澤桐腌,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站蚕苇,受9級(jí)特大地震影響哩掺,放射性物質(zhì)發(fā)生泄漏避诽。R本人自食惡果不足惜霜医,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一远舅、第九天 我趴在偏房一處隱蔽的房頂上張望抑钟。 院中可真熱鬧苔货,春花似錦匙头、人聲如沸琉历。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽誊稚。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間里伯,已是汗流浹背城瞎。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留疾瓮,地道東北人脖镀。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像狼电,于是被迫代替她去往敵國和親蜒灰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355