Pipenv: Python包管理神器

Pipenv旨在將最好的包管理機制(bundler, composer, npm, cargo, yarn等等)帶到Python中去。shell

它會爲你的項目自動建立和管理virtualenv,也會在安裝和移除包時自動同步Pipfile,還生成了Pipfile.lock文件描述了固定版本,以便在生產環境中構建。npm

Pipenv主要解決了如下問題:安全

  • 咱們不須要分開使用pipvirtualenv,如今他們被合併了。
  • 維護requirements.txt有時也會遇到一些問題,Pipenv使用PipfilePipfile.lock來抽象分開依賴定義
  • 普遍使用Hash來保證安全
  • 強力鼓勵你使用最新的依賴版本下降安全風險
  • 經過 pipenv graph更直觀顯示依賴圖示
  • 經過加載.env文件來實現流線型開發工做流

安裝Pipenv

sudo pip install pipenvcomposer

Pipenv工做流程

進入項目編輯器

cd myproject

從Pipfile文件中安裝ui

pipenv install

或者爲項目指定加入packageurl

pipenv install <package>

若是Pipfile文件不存在時會建立一個,若是存在就會對其進行編輯,加入新包。插件

接下來激活Pipenv shell:code

pipenv shell

退出ip

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" > .env
pipenv shell
echo $FOO

編輯器支持

Pycharm當前已經支持pipenv包管理插件。

相關文章
相關標籤/搜索