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