亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

快速入門(mén)Python 最新最流行的pipenv虛擬環(huán)境

roundstones / 595人閱讀

摘要:的把最新型最先進(jìn)的虛擬環(huán)境吵得火熱。進(jìn)入后,你會(huì)發(fā)現(xiàn)用也是能生效的。但是注意進(jìn)入環(huán)境后千萬(wàn)不要用退出,而應(yīng)該用退出。最佳解決方案是因?yàn)檫@種在其他地方也常見(jiàn),一般都是沒(méi)有在環(huán)境里安裝的問(wèn)題。

2018的PyCon把最新型最先進(jìn)的Python虛擬環(huán)境pipenv吵得火熱??戳讼陆榻B感覺(jué)真的很好用,它在virtualenv的基礎(chǔ)上包裝了一些更便捷的功能,解決了很多很多virtualenv欠缺的事情。

參考pipenv的前世今生:PyCon 2018 之 Python 未來(lái)的依賴(lài)管理工具 pipenv
參考:pipenv 更優(yōu)雅的管理你的python開(kāi)發(fā)環(huán)境
直接參考創(chuàng)造者Kenneth的官方說(shuō)明

簡(jiǎn)單說(shuō),pipenv就是把pipvirtualenv包裝起來(lái)的一個(gè)便攜工具。

它不會(huì)在你的項(xiàng)目文件夾里生成一大堆東西,只有兩個(gè)文本文件:

Pipfile, 簡(jiǎn)明地顯示項(xiàng)目環(huán)境和依賴(lài)包。

Pipfile.lock, 詳細(xì)記錄環(huán)境依賴(lài),并且利用了hash算法保證了它完整對(duì)應(yīng)關(guān)系。只在你使用pipenv lock命令后才出現(xiàn)。

安裝

Mac安裝很簡(jiǎn)單,只要用Homebrew:

$ brew install pipenv

Linux的話(huà),是用pip安裝:

$ pip install --user pipenv

安裝好后,終端里還調(diào)取不了命令,因?yàn)樗F(xiàn)在只是個(gè)包。
需要先找到它的真是路徑,然后為了方便把它加到bash或zsh等shell里面:

# 先獲取python包的位置
$ python -m site --user-base

比如我的顯示在/home/pi/.local,那么pipenv就藏在/home/pi/.local/bin里。
所以需要打開(kāi)shell的設(shè)置文件,比如bash的話(huà)就編輯~/.bash_profile, zsh的話(huà)就編輯~/.zshrc,在里面把剛才查到的包路徑存進(jìn)去:

alias pipenv="home/pi/.local/bin/pipenv"

注意:我沒(méi)有像其他人一樣整個(gè)export進(jìn)去,因?yàn)椴恢罏槭裁礃?shù)莓派里面的zsh使用不來(lái)這個(gè)。

創(chuàng)建虛擬環(huán)境

在某個(gè)文件夾創(chuàng)建一個(gè)Python3環(huán)境:

# 泛指python的版本
$ pipenv --three

# 或者,特指某個(gè)python版本
$ pipenv --python 3.5

# 或者,特指某個(gè)位置的python
$ pipenv --python 

然后就會(huì)顯示如下動(dòng)態(tài),可以看出來(lái),pipenv調(diào)用了virtualenv,從本機(jī)把Python3環(huán)境拷貝一份到某個(gè)本機(jī)位置,然后在你的項(xiàng)目文件夾里只創(chuàng)建了兩個(gè)文件PipfilePipfile.lock,記錄了所有你這個(gè)項(xiàng)目需要的環(huán)境配置,內(nèi)容極其簡(jiǎn)單易懂:

顯示當(dāng)前虛擬環(huán)境的儲(chǔ)存位置
$ pipenv --venv
運(yùn)行環(huán)境

運(yùn)行虛擬環(huán)境(無(wú)需進(jìn)入特定shell即可按照該環(huán)境運(yùn)行腳本):

$ pipenv run python xxx.py
進(jìn)入環(huán)境

進(jìn)入虛擬環(huán)境:

# 進(jìn)入虛擬環(huán)境
$ pipenv shell

# 退出虛擬環(huán)境
$ exit

其實(shí)進(jìn)入pipenv虛擬環(huán)境,本質(zhì)上就是virtualenvsource ./bin/activate動(dòng)作,只是使用不一樣。進(jìn)入后,你會(huì)發(fā)現(xiàn)用deactivate也是能生效的。但是:

注意:進(jìn)入pipenv環(huán)境后千萬(wàn)不要用deactivate退出,而應(yīng)該用exit退出。否則你再進(jìn)去這個(gè)環(huán)境就會(huì)產(chǎn)生錯(cuò)誤:

Shell for UNKNOWN_VIRTUAL_ENVIRONMENT already activated. 
No action taken to avoid nested environments.
安裝packages包
$ pipenv install <包名>

你需要知道的是,進(jìn)入pipenv虛擬環(huán)境后,你還是可以用pip install來(lái)安裝包的,也能正常使用,因?yàn)関irtualenv就是這樣做的。
但是,這樣你就不算使用了pipenv策略了,如果你要在項(xiàng)目文件夾里的Pipfile記錄所有項(xiàng)目需要的依賴(lài)環(huán)境,就應(yīng)該放棄使用pip install而使用pipenv install,這樣你的Pipfile就會(huì)精確記錄所有需要的依賴(lài)。

重新安裝所有packages:
有時(shí)候需要沖github上clone項(xiàng)目,下載好后,只需要一句話(huà)就可以完成創(chuàng)建環(huán)境:

# 根據(jù)Pipfile中的描述安裝所有依賴(lài)
$ pipenv install

# 或者,根據(jù)Pipfile.lock中的描述安裝所有依賴(lài)
$ pipenv install --ignore-pipfile

# 或者,只安裝dev組的依賴(lài)
$ pipenv install --dev

# 或者,根據(jù)曾經(jīng)在pip上導(dǎo)出requirements.txt安裝依賴(lài)
$ pipenv install -r 
按照樹(shù)形結(jié)構(gòu)顯示當(dāng)前環(huán)境的依賴(lài)關(guān)系:
$ pipenv graph

然后就會(huì)顯示出如下效果:

刪除虛擬環(huán)境:
# 刪除某個(gè)包
pipenv uninstall <包名>

# 刪除整個(gè)環(huán)境
$ pipenv --rm
pipenv lock時(shí)遇到的SSL Error

錯(cuò)誤反饋如下:

Pipfile.lock not found, creating…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
usr/local/Cellar/pipenv/2018.5.18/libexec/lib/python3.6/site-packages/pipenv/vendor/requests/sessions.py", line 508, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/Cellar/pipenv/2018.5.18/libexec/lib/python3.6/site-packages/pipenv/vendor/requests/sessions.py", line 618, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/Cellar/pipenv/2018.5.18/libexec/lib/python3.6/site-packages/pipenv/vendor/requests/adapters.py", line 506, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host="pypi.org", port=443): Max retries exceeded with url: /pypi/pyobjc-framework-netfs/json (Caused by SSLError(SSLError(1, u"[SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:590)"),))

參考pipenv的issue解答。

最佳解決方案是:

$ pip install pyopenssl

因?yàn)檫@種SSL Error在其他地方也常見(jiàn),一般都是沒(méi)有在環(huán)境里安裝pyopenssl的問(wèn)題。所以不管你在哪個(gè)環(huán)境,如果出現(xiàn)這個(gè)SSL問(wèn)題,就先裝pyopenssl解決。
注意:不要用pipenv install pyopenssl,因?yàn)槟阏娴牟幌朐诿總€(gè)環(huán)境里都重新裝一遍這個(gè),干脆把它撞到本機(jī):$ pip install pyopenssl.

常見(jiàn)錯(cuò)誤操作 不要在pipenv shell里面運(yùn)行pipenv install 不要在pipenv shell里面運(yùn)行deactivate

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/41814.html

相關(guān)文章

  • Pipenv – 超好用 Python 包管理工具

    摘要:安全,廣泛地使用校驗(yàn),能夠自動(dòng)曝露安全漏洞。部分用來(lái)設(shè)置倉(cāng)庫(kù)地址,部分用來(lái)指定項(xiàng)目依賴(lài)的包,部分用來(lái)指定開(kāi)發(fā)環(huán)境需要的包,這樣分開(kāi)便于管理。參考鏈接新款虛擬環(huán)境工具詳解筆記使用指南官方推薦的包管理工具 pipenv 是什么 pipenv 是 python 官方推薦的包管理工具,集成了 virtualenv、pyenv 和 pip 三者的功能于一身,類(lèi)似于 php 中的 composer...

    tunny 評(píng)論0 收藏0
  • CentOS 下使用 Pipenv + Gunicorn + Supervisor 部署 Flask

    摘要:根據(jù)中華人民共和國(guó)信息產(chǎn)業(yè)部第十二次部務(wù)會(huì)議審議通過(guò)的非經(jīng)營(yíng)性互聯(lián)網(wǎng)信息服務(wù)備案管理辦法精神,在中華人民共和國(guó)境內(nèi)提供非經(jīng)營(yíng)性互聯(lián)網(wǎng)信息服務(wù),應(yīng)當(dāng)辦理備案。未經(jīng)備案,不得在中華人民共和國(guó)境內(nèi)從事非經(jīng)營(yíng)性互聯(lián)網(wǎng)信息服務(wù)。 當(dāng)我們開(kāi)發(fā)了一個(gè)簡(jiǎn)單的 Flask 程序,想把項(xiàng)目部署上線(xiàn),我們可以選擇傳統(tǒng)的部署方式或者云部署方式把項(xiàng)目部署上線(xiàn)。在本文中,筆者將使用 阿里云輕量應(yīng)用服務(wù)器 安裝 C...

    anyway 評(píng)論0 收藏0
  • Flask Web 測(cè)試驅(qū)動(dòng)開(kāi)發(fā)佳實(shí)踐 之 開(kāi)篇

    摘要:測(cè)試驅(qū)動(dòng)開(kāi)發(fā)簡(jiǎn)稱(chēng),是一種軟件開(kāi)發(fā)過(guò)程中的應(yīng)用方法,,由極限編程中倡導(dǎo),以其倡導(dǎo)先寫(xiě)測(cè)試程序,然后編碼實(shí)現(xiàn)其功能得名。測(cè)試驅(qū)動(dòng)著整個(gè)開(kāi)發(fā)過(guò)程首先,驅(qū)動(dòng)代碼的設(shè)計(jì)和功能的實(shí)現(xiàn)其后,驅(qū)動(dòng)代碼的再設(shè)計(jì)和重構(gòu)。 showImg(https://segmentfault.com/img/remote/1460000017081716); 前言 一直都有聽(tīng)到 TDD 測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的開(kāi)發(fā)方式,之前看...

    fnngj 評(píng)論0 收藏0
  • 比virtuslenv更好用虛擬環(huán)境pipenv

    摘要:提示如果你對(duì)的用法以及虛擬環(huán)境的概念不熟悉的話(huà),可以通過(guò)專(zhuān)欄的舊文出發(fā)之旅進(jìn)行簡(jiǎn)單的認(rèn)識(shí)。為什么使用會(huì)自動(dòng)幫你管理虛擬環(huán)境和依賴(lài)文件,并且提供了一系列命令和選項(xiàng)來(lái)幫助你實(shí)現(xiàn)各種依賴(lài)和環(huán)境管理相關(guān)的操作。 什么是Pipenv Pipenv是Kenneth Reitz在2017年1月發(fā)布的Python依賴(lài)管理工具,現(xiàn)在由PyPA維護(hù)。你可以把它看做是pip和virtualenv的組合體,而...

    wing324 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<