Pipenv是Kenneth Reitz在2017年1月發佈的Python依賴管理工具,如今由PyPA維護。你能夠把它看作是pip和virtualenv的組合體,而它基於的Pipfile則用來替代舊的依賴記錄方式(requirements.txt)。python
在這篇文章裏,我將會以舊的依賴管理工做流程做爲對比來介紹Pipenv的基本用法,更詳細的用法能夠參考Pipenv文檔,或是Kenneth Reitz在PyCon 2018的演講《Pipenv: The Future of Python Dependency Management》。shell
順便說一句,《Flask Web開發實戰》中全部示例程序都使用了Pipenv進行依賴管理。npm
提示 若是你對virtualenv的用法以及虛擬環境的概念不熟悉的話,能夠經過專欄的舊文《Flask出發之旅》進行簡單的認識。
爲何使用Pipenv
Pipenv會自動幫你管理虛擬環境和依賴文件,而且提供了一系列命令和選項來幫助你實現各類依賴和環境管理相關的操做。簡而言之,它更方便、完善和安全。你能夠經過Pipenv文檔開頭的介紹來了解它的詳細特性。Pipenv的slogan是「Python Dev Workflow for Humans」,做爲人類,固然應該嘗試一下……安全
假設咱們要編寫一個博客程序,項目的依賴是Flask和Flask-WTF。順便說一句,可使用下面的命令安裝Pipenv:app
$ pip install pipenv
之前咱們搭建虛擬環境須要學習使用virtualenv和virtualenvwrapper,在虛擬環境內管理軟件依賴包須要學習使用pip, 而有了pipenv, 前面幾個就能夠不用學了...
之前咱們須要將虛擬環境依賴包的導出爲requirements.txt, 一旦依賴包變更,就要從新導出,而pipenv會自動幫咱們生成Pipfile和Pipfile.lock, Pipfile會隨着項目,當咱們安裝時只需在Pipfile和Pipfile.lock所在的目錄下運行pipenv install工具
前提條件: 系統已安裝python2和python3學習
# 建立python3環境 pipenv --three # 建立python2環境 pipenv --two # 在上一步新建環境的目錄下,運行此命令纔有效 pipenv shell
pipenv install yagmail requestsui
pipenv graphcode
pipenv uninstall yagmailthree
exit
pipenv --py
查看虛擬環境所在位置
pipenv --venv
pipenv run pip freeze
pipenv install pytest --dev
pipenv sync
pipenv借鑑了npm管理包的方式, 與virtualenv和virtualenvwrapper相比, pipenv對新手要更友好一些,推薦學習~