Pipenv是一款旨在將所有包管理工具(如bundler, composer,npm, cargo, yarn等)的優(yōu)點集中應用于python領域中的工具。它對各個平臺都有很好的支持。
它可以為你的項目自動創(chuàng)建和管理虛擬環(huán)境,并且在你安裝/刪除包時自動在Pipfile中添加/移除相應的包。它同時生成一個非常重要的Pipfile.lock文件,來保證所構建環(huán)境的確定性。
Pipenv想要解決的問題是多方面的:
你不需要再分別使用pip和virtualenv,在Pipenv中他們一起工作
管理一個requirements.txt文件會產(chǎn)生很多問題,所以Pipenv用后面會出現(xiàn)的Pipfile和Pipfile.lock將其代替,這在實際例子中效果會更好。
為了安全性,哈希在多處被使用。自動公開安全漏洞。
讓你通過圖形深入了解當前的依賴關系($ pipenv graph)
通過加載.env文件簡化開發(fā)流程
安裝
Windows環(huán)境:
$ pip install pipenv
如果你使用的是macOS,你可以使用Homebrew安裝:
$ brew install pipenv
用戶的好評
Jannis Leidel, former pip maintainer—
Pipenv是一個精品,是我一直想將pip打造成的樣子,它符合我的思維習慣,基本替代了virtualenvwrapper,并減少了很多手動的pip操作。使用它吧!
Justin Myles Holmes—
pipenv最終是一種抽象的概念,它意味著要讓人的頭腦(而不僅僅是文件系統(tǒng))參與其中。
Pipenv是我今天遇到最好的事情。 謝謝,Kenneth!
特性
容易的實現(xiàn)確定性構建,同時可輕易地指定你想要的內容
在鎖定依賴項時,生成并檢查文件的哈希
如果pyenv可用,自動安裝所需要的Python
通過查找Pipfile,遞歸的自動查找你的項目
如果Pipfile不存在,則自動生成一個
在標準地址自動創(chuàng)建一個虛擬環(huán)境
當包被安裝或者刪除時,自動在Pipfile中修改。
如果.env文件存在,則自動載入
主要命令包括 install,uninstall,以及l(fā)ock(生成Pipfile.lock)。這些命令可以替代$ pip install使用以及對虛擬環(huán)境的手動管理(激活虛擬環(huán)境,只需運行$ pipenv shell)
基本概念
當虛擬環(huán)境不存在時,會自動創(chuàng)建一個
當沒有參數(shù)傳給 install 時,將安裝所有指定的包
通過 $ pipenv --three,初始化一個Python3的虛擬環(huán)境
通過$ pipenv --two,初始化一個Python2的虛擬環(huán)境
其他命令下生成的虛擬環(huán)境都是默認設置
其他命令
shell命令會生成一個激活了虛擬環(huán)境的shell
run將運行輸入到虛擬環(huán)境的命令,并轉發(fā)所有參數(shù)(e.g.$ pipenv run python)
check確定當前環(huán)境滿足PEP 508的要求
graph將輸出一個包含當前所有已安裝依賴的漂亮圖形
Shell 補全
舉個例子,使用fish shell,將下列命令加入~/.config/fish/completions/pipenv.fish:
eval (pipenv --completion)
另外,也可以使用bash,將下列代碼加入 .bashrc 或者 .bash_profile:
eval "$(pipenv --completion)"
神奇的shell補全功能現(xiàn)在已經(jīng)可以使用了!(Fish 是最好的shell,你應該使用它)
應用
定位項目:
定位虛擬環(huán)境:
定位Python解釋器:
安裝包:
安裝一個開發(fā)環(huán)境依賴:
展示一個依賴圖:
生成一個lockfile:
安裝所有開發(fā)依賴:
卸載全部:
使用shell:
-
python
+關注
關注
56文章
4821瀏覽量
85650 -
Shell
+關注
關注
1文章
369瀏覽量
23750
原文標題:Pipenv:官方推薦的python包管理工具
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
Linux環(huán)境下如何管理Python包管理工具








Python之包管理工具快速入門

一份2018年Python開源項目Top100清單!

評論