天天看點

Pipenv,最好用的Python虛拟環境和依賴管理工具

一、什麼是Pipenv

Pipenv是Kenneth Reitz在2017年1月釋出的Python依賴管理工具,現在由PyPA維護。你可以把它看做是pip和virtualenv的組合體,而它基于的Pipfile則用來替代舊的依賴記錄方式(requirements.txt)。

1、普通安裝

pipenv

可使用 pip 直接安裝。

pip install pipenv
           

作者推薦在

python3

下邊安裝,會提高與virtualenv的相容性。

2、使用者模式安裝

為防止和系統python庫産生影響,可使用此種方案安裝。

pip install --user pipenv
           

pip 預設安裝包路徑為

/usr/local/lib/python2.7/site-packages

。此模式下,pip安裝包儲存路徑為使用者庫路徑,一般為

/Users/pylixm/Library/Python/3.6/lib/python/site-packages

, 可使用指令

python3 -m site --user-site

具體檢視。如果在安裝後你的shell中pipenv不可用,你需要把使用者庫的二進制目錄

/Users/pylixm/Library/Python/3.6/bin

添加到你的PATH中。

3、使用pipenv

用一個空目錄體驗一下:

❯ mkdir test_pipenv
❯ cd test_pipenv
❯ pipenv install  # 建立一個虛拟環境
Creating a virtualenv for this project…
...
Installing setuptools, pip, wheel...done.
Virtualenv location: /Users/dongweiming/.virtualenvs/test_pipenv-GP_s2TW5
Creating a Pipfile for this project…
Pipfile.lock not found, creating…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
Updated Pipfile.lock (c23e27)!
Installing dependencies from Pipfile.lock (c23e27)…
  ?   ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 0/0 — 00:00:00
To activate this project's virtualenv, run the following:
 $ pipenv shell

❯ pipenv shell  # 激活虛拟環境
❯ which python3  # 已經在虛拟環境裡了
❯ exit  # 退出虛拟環境
           

以上就是原來virtualenv的基本用法了。我們看一下目前目錄現在是什麼樣子的:

❯ ls
Pipfile  Pipfile.lock
           

pipenv 沒有像virtualenv那樣配置環境,使用workon的指令,是以建立、删除,包括

pipenv shell

需要在指定的環境目錄下,不然就在目前目錄建立虛拟環境了。

二、安裝python子產品

1、正常安裝

安裝

requests

子產品:

$ pipenv install requests
           

現在Pipfile.lock已經更新了,包含了 elasticsearch-dsl、requests 和相關依賴的包資訊。

可通過指令

pipenv graph

檢視已安裝子產品,同時可檢視他們直接的互相依賴情況。

$ pipenv graph
requests==2.18.4
  - certifi [required: >=2017.4.17, installed: 2017.11.5]
  - chardet [required: <3.1.0,>=3.0.2, installed: 3.0.4]
  - idna [required: >=2.5,<2.7, installed: 2.6]
  - urllib3 [required: >=1.21.1,<1.23, installed: 1.22]
           

2、隻安裝開發環境

可通過以下指令,僅安裝在開發環境,

pipenv install --dev requests --three
           

3、通過 requirements.txt 安裝

pipenv install -r requirements.txt
           

這樣我們可以重用之前的requirement.txt 檔案來建構我們新的開發環境,可以把我們的項目順利的遷到pipenv。

可通過以下指令生成requirements 檔案:

pipenv lock -r [--dev] > requirements.txt
# 或者
pipenv run pip freeze > requirements.txt
           

4、項目環境遷移部署

把原環境的

Pipfile Pipfile.lock

檔案拷貝到新環境中,直接如下執行即可:

pipenv install
           

5、檢視幫助資訊

pipenv
           
Pipenv,最好用的Python虛拟環境和依賴管理工具

參考資料:

github倉庫位址

pipenv 官方文檔

使用pipenv管理你的項目

pipenv 更優雅的管理你的python開發環境

繼續閱讀