pipenv
是 Python官方推薦 的包管理工具。能夠說,它集成了virtualenv
, pip
和pyenv
三者的功能。其目的旨在集合了全部的包管理工具的長處,如: npm
, yarn
, composer
等的優勢。python
它可以自動爲項目建立和管理虛擬環境,從Pipfile
文件添加或刪除安裝的包,同時生成Pipfile.lock
來鎖定安裝包的版本和依賴信息,避免構建錯誤。git
pipenv
主要解決了以下問題:github
pip
和virtualenv
, 如今它們合併在一塊兒了requirements.txt
, 使用Pipfile
和Pipfile.lock
來代替python2
和python3
)pyenv
的條件下,能夠自動安裝須要的Python版本pip install pipenv -i https://pypi.douban.com/simple
Usage: pipenv \[OPTIONS\] COMMAND \[ARGS\]... Options: --where Output project home information. --venv Output virtualenv information. --py Output Python interpreter information. --envs Output Environment Variable options. --rm Remove the virtualenv. --bare Minimal output. --completion Output completion (to be eval'd). --man Display manpage. --support Output diagnostic information for use in GitHub issues. --site-packages Enable site-packages for the virtualenv. \[env var: PIPENV\_SITE\_PACKAGES\] --python TEXT Specify which version of Python virtualenv should use. --three / --two Use Python 3/2 when creating virtualenv. --clear Clears caches (pipenv, pip, and pip-tools). \[env var: PIPENV\_CLEAR\] -v, --verbose Verbose mode. --pypi-mirror TEXT Specify a PyPI mirror. --version Show the version and exit. -h, --help Show this message and exit. Usage Examples: Create a new project using Python 3.7, specifically: $ pipenv --python 3.7 Remove project virtualenv (inferred from current directory): $ pipenv --rm Install all dependencies for a project (including dev): $ pipenv install --dev Create a lockfile containing pre-releases: $ pipenv lock --pre Show a graph of your installed dependencies: $ pipenv graph Check your installed dependencies for security vulnerabilities: $ pipenv check Install a local setup.py into your virtual environment/Pipfile: $ pipenv install -e . Use a lower-level pip command: $ pipenv run pip freeze Commands: check Checks for security vulnerabilities and against PEP 508 markers provided in Pipfile. clean Uninstalls all packages not specified in Pipfile.lock. graph Displays currently-installed dependency graph information. install Installs provided packages and adds them to Pipfile, or (if no packages are given), installs all packages from Pipfile. lock Generates Pipfile.lock. open View a given module in your editor. run Spawns a command installed into the virtualenv. shell Spawns a shell within the virtualenv. sync Installs all packages specified in Pipfile.lock. uninstall Un-installs a provided package and removes it from Pipfile. update Runs lock, then sync.
# 安裝包 $ pipenv install # 安裝指定包版本 eg: $ pipenv install django=2.1.7 # 安裝 pipfile.lock 中固定版本 $ pipenv install --ingnore-pipfile # 激活(進入)當前項目的虛擬環境 $ pipenv shell # 查看當前虛擬環境的路徑 $ pipenv --venv # 安裝開發依賴包 $ pipenv install pytest --dev # 圖形顯示包依賴關係(可檢查安裝包對其餘包版本的要求) $ pipenv graph # 生成lockfile(pipenv install 默認會生成 lockfile 文件) $ pipenv lock # 刪除某個安裝包 $ pipenv uninstall django # 刪除全部的安裝包 $ pipenv uninstall --all # 退出當前虛擬環境 $ exit or ctrl+d # 刪除當前虛擬環境 $ pipenv --rm
當在執行pipenv install
命令的時候,若是有一個requirements.txt
文件,那麼會自動從requirements.txt
文件導入安裝包信息並建立一個Pipfile
文件。一樣能夠使用
$ pipenv install -r path/to/requirements.txt
來導入requirements.txt
文件shell
$ pipenv --python 3
$ pipenv --python 3.6
$ pipenv --python 2.7.14npm
咱們也能夠從Pipfile
和Pipfile.lock
文件來生成requirements.txt
django
注意⚠️:pipenv
會自動掃描系統尋找合適的版本信息,若是找不到的話,同時又安裝了pyenv
, 它會自動調用pyenv
下載對應的版本的python安全
# 生成requirements.txt文件 $ pipenv lock -r # 生成dev-packages的requirements.txt文件 # pipenv lock -r -d
pipenv
包含了safety
模塊,能夠讓咱們堅持安裝包是否存在安全隱患。composer
pipenv check
pipenv
默認集成了flake8
, 能夠用來檢測編碼風格ide
pipenv check --style test.py