pipenv 的使用

pipenv 的使用

pipenv 簡介

pipenv Python官方推薦 的包管理工具。能夠說,它集成了virtualenv, pippyenv三者的功能。其目的旨在集合了全部的包管理工具的長處,如: npm, yarn, composer等的優勢。python

它可以自動爲項目建立和管理虛擬環境,從Pipfile文件添加或刪除安裝的包,同時生成Pipfile.lock來鎖定安裝包的版本和依賴信息,避免構建錯誤。git

pipenv主要解決了以下問題:github

  • 不用再單獨使用pipvirtualenv, 如今它們合併在一塊兒了
  • 不用再維護requirements.txt, 使用PipfilePipfile.lock來代替
  • 能夠使用多個python版本(python2python3)
  • 在安裝了pyenv的條件下,能夠自動安裝須要的Python版本

pipenv 安裝

pip install pipenv -i https://pypi.douban.com/simple

pipenv 命令

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 經常使用命令介紹

# 安裝包
$ 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 高級

  • 導入:
當在執行 pipenv install命令的時候,若是有一個 requirements.txt文件,那麼會自動從 requirements.txt文件導入安裝包信息並建立一個 Pipfile文件。

一樣能夠使用$ pipenv install -r path/to/requirements.txt來導入requirements.txt文件shell

  • 指定 python 版本

$ pipenv --python 3
$ pipenv --python 3.6
$ pipenv --python 2.7.14npm

咱們也能夠從PipfilePipfile.lock文件來生成requirements.txtdjango

  • 生成 requirements.txt 文件

注意⚠️:pipenv會自動掃描系統尋找合適的版本信息,若是找不到的話,同時又安裝了pyenv, 它會自動調用pyenv下載對應的版本的python安全

# 生成requirements.txt文件
$ pipenv lock -r

# 生成dev-packages的requirements.txt文件
# pipenv lock -r -d

image.png

  • 排查安全隱患

pipenv包含了safety模塊,能夠讓咱們堅持安裝包是否存在安全隱患。composer

pipenv check
  • 代碼風格檢查

pipenv默認集成了flake8, 能夠用來檢測編碼風格ide

pipenv check --style test.py
相關文章
相關標籤/搜索