一、什麼是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
參考資料:
github倉庫位址
pipenv 官方文檔
使用pipenv管理你的項目
pipenv 更優雅的管理你的python開發環境