日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

快速运行python虚拟环境_快速入门Python 最新最流行的pipenv虚拟环境

發(fā)布時間:2024/9/27 python 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 快速运行python虚拟环境_快速入门Python 最新最流行的pipenv虚拟环境 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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

簡單說,pipenv就是把pip和virtualenv包裝起來的一個便攜工具。

它不會在你的項目文件夾里生成一大堆東西,只有兩個文本文件:

Pipfile, 簡明地顯示項目環(huán)境和依賴包。

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

安裝

Mac安裝很簡單,只要用Homebrew:

$ brew install pipenv

Linux的話,是用pip安裝:

$ pip install --user pipenv

安裝好后,終端里還調取不了命令,因為它現(xiàn)在只是個包。

需要先找到它的真是路徑,然后為了方便把它加到bash或zsh等shell里面:

# 先獲取python包的位置

$ python -m site --user-base

比如我的顯示在/home/pi/.local,那么pipenv就藏在/home/pi/.local/bin里。

所以需要打開shell的設置文件,比如bash的話就編輯~/.bash_profile, zsh的話就編輯~/.zshrc,在里面把剛才查到的包路徑存進去:

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

注意:我沒有像其他人一樣整個export進去,因為不知道為什么樹莓派里面的zsh使用不來這個。

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

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

# 泛指python的版本

$ pipenv --three

# 或者,特指某個python版本

$ pipenv --python 3.5

# 或者,特指某個位置的python

$ pipenv --python

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

顯示當前虛擬環(huán)境的儲存位置

$ pipenv --venv

運行環(huán)境

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

$ pipenv run python xxx.py

進入環(huán)境

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

# 進入虛擬環(huán)境

$ pipenv shell

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

$ exit

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

注意:進入pipenv環(huán)境后千萬不要用deactivate退出,而應該用exit退出。否則你再進去這個環(huán)境就會產(chǎn)生錯誤:

Shell for UNKNOWN_VIRTUAL_ENVIRONMENT already activated.

No action taken to avoid nested environments.

安裝packages包

$ pipenv install

你需要知道的是,進入pipenv虛擬環(huán)境后,你還是可以用pip install來安裝包的,也能正常使用,因為virtualenv就是這樣做的。

但是,這樣你就不算使用了pipenv策略了,如果你要在項目文件夾里的Pipfile記錄所有項目需要的依賴環(huán)境,就應該放棄使用pip install而使用pipenv install,這樣你的Pipfile就會精確記錄所有需要的依賴。

重新安裝所有packages:

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

# 根據(jù)Pipfile中的描述安裝所有依賴

$ pipenv install

# 或者,根據(jù)Pipfile.lock中的描述安裝所有依賴

$ pipenv install --ignore-pipfile

# 或者,只安裝dev組的依賴

$ pipenv install --dev

# 或者,根據(jù)曾經(jīng)在pip上導出requirements.txt安裝依賴

$ pipenv install -r

按照樹形結構顯示當前環(huán)境的依賴關系:

$ pipenv graph

然后就會顯示出如下效果:

刪除虛擬環(huán)境:

# 刪除某個包

pipenv uninstall

# 刪除整個環(huán)境

$ pipenv --rm

pipenv lock時遇到的SSL Error

錯誤反饋如下:

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)'),))

最佳解決方案是:

$ pip install pyopenssl

因為這種SSL Error在其他地方也常見,一般都是沒有在環(huán)境里安裝pyopenssl的問題。所以不管你在哪個環(huán)境,如果出現(xiàn)這個SSL問題,就先裝pyopenssl解決。

注意:不要用pipenv install pyopenssl,因為你真的不想在每個環(huán)境里都重新裝一遍這個,干脆把它撞到本機:$ pip install pyopenssl.

常見錯誤操作

不要在pipenv shell里面運行pipenv install

不要在pipenv shell里面運行deactivate

總結

以上是生活随笔為你收集整理的快速运行python虚拟环境_快速入门Python 最新最流行的pipenv虚拟环境的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。