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)困難,可能是我手法不對,有點(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)目對應(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)容對應(yīng)

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

之后隨意測試的時(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)過測試:在公司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)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 確保你已經(jīng)有了 python 和 pip在您進(jìn)一步之前,請確保您有 Python,并且可從您的命令行中獲得。 你可...
    yiangdea閱讀 1,317評論 0 1
  • 1.環(huán)境管理:管理 Python 版本和環(huán)境的工具 p – 非常簡單的交互式 python 版本管理工具。 pye...
    從此110閱讀 3,953評論 3 79
  • Python資源大全中文版,包括:Web框架、網(wǎng)絡(luò)爬蟲、模板引擎、數(shù)據(jù)庫、數(shù)據(jù)可視化、圖片處理等,由伯樂在線持續(xù)更...
    dxl1236閱讀 4,833評論 2 33
  • ## 定位流 # 相對定位 # 絕對定位 # 子絕父相 # 固定定位 # z-index屬性 定位的元素會(huì)蓋住沒有...
    KsKison閱讀 510評論 0 0
  • (一)一個(gè)人內(nèi)心產(chǎn)生的焦慮情緒,如果不是出于對自身某些不妥當(dāng)行為的嚴(yán)重不滿,便極有可能是對一些人遭遇的不幸生出了真...
    漁夫镕谷閱讀 364評論 2 25

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