Pipenv旨在將最好的包管理機制(bundler, composer, npm, cargo, yarn等等)帶到Python中去。shell
它會爲你的項目自動建立和管理virtualenv,也會在安裝和移除包時自動同步Pipfile,還生成了Pipfile.lock文件描述了固定版本,以便在生產環境中構建。npm
Pipenv主要解決了如下問題:安全
咱們不須要分開使用pip和virtualenv,如今他們被合併了。composer
維護requirements.txt有時也會遇到一些問題,Pipenv使用Pipfile和Pipfile.lock來抽象分開依賴定義編輯器
普遍使用Hash來保證安全ui
強力鼓勵你使用最新的依賴版本下降安全風險url
經過 pipenv graph更直觀顯示依賴圖示插件
經過加載.env文件來實現流線型開發工做流cdn
安裝Pipenvblog
sudo pip install pipenv
Pipenv工做流程
進入項目
cd myproject
從Pipfile文件中安裝
pipenv install
或者爲項目指定加入package
pipenv install
若是Pipfile文件不存在時會建立一個,若是存在就會對其進行編輯,加入新包。
接下來激活Pipenv shell:
pipenv shell
退出
exit
更多指令
更新某個package
pipenv update requests
移除某個package
pipenv uninstall requests
安裝到dev環境
pipenv install -dev parsel==1.3.1
顯示依賴圖示
$ pipenv graph
requests==2.20.1
- certifi [required: =2017.4.17, installed: 2018.11.29]
- chardet [required: =3.0.2,3.1.0, installed: 3.0.4]
- idna [required: =2.5,2.8, installed: 2.7]
- urllib3 [required: =1.21.1,1.25, installed: 1.24.1]
鎖定版本
pipenv lock
環境變量
若是須要在環境中加入一些環境變量,能夠將變量加入到.env文件中,在pipenv shell指令進入環境時,它會自動加載該文件的變量:
echo FOO=BAR .envpipenv shellecho $FOO
編輯器支持
Pycharm當前已經支持pipenv包管理插件。