前言
最近用了pipenv感覺挺不錯(cuò)的,寫篇博文來推廣一下。
一、優(yōu)點(diǎn)
- 自動關(guān)聯(lián)項(xiàng)目相關(guān)的
virtualenv,能夠快速的加載virtualenv。 - 提供的
pipenv替代pip并自帶一個(gè)依賴清單Pipfile,和依賴鎖定Pipfile.lock。 - 其中
Pipfile除了依賴清單還支持固定pypi源地址,固定python版本。 -
Pipfile還支持dev依賴清單.pipenv install的包會強(qiáng)制使用Pipfile中的源. - 解決了
pip install pandas時(shí)里的numpy依舊走官方pypi. - 還有就是可以直接切換
python2,3 - 使用
pipenv graph命令可以看到依賴樹
二、缺點(diǎn)
-
windows上切入virtualenv,命令行開頭無virtualenv名字。 -
Pipfile中的pypi源無法默認(rèn)設(shè)置,造成每次都需要手動修改。 -
pipenv終究用的是virtualenv,無法像nvm這種做到python管理。 -
python2,3切換時(shí)是刪除上次的virtualenv,所以每次切換都要重新安裝依賴。 -
pipenv uninstall無法以依賴樹的關(guān)系進(jìn)行卸載。
三、快速使用
安裝
pipenv作為一個(gè)python包,最快的安裝方案當(dāng)然是。
pip install pipenv
注意linux可能沒有權(quán)限,如果有直接的系統(tǒng)包建議安裝系統(tǒng)包
sudo pip install pipenv
原有項(xiàng)目使用
打開項(xiàng)目目錄控制臺執(zhí)行下面命令
# use python2
pipenv --two
# use python3
# pipenv --three
# use source doubanio
sed -i s/pypi.python.org/pypi.doubanio.com/g Pipfile
# install old packages
pipenv install -r requirements.txt
其中pipenv --two或者pipenv --three代表創(chuàng)建虛擬環(huán)境和Pipfile文件。
但是不安裝依賴,然后通過sed修改pypi源,
默認(rèn)設(shè)置Pipfile文件,我提了issues.
但是@kennethreitz,關(guān)閉了該issues,并且說了
not in scope
看來是不會有了。
然后就是進(jìn)入與退出virtualenv
# 進(jìn)入
pipenv shell
# 退出
exit
還有一個(gè)pipenv run的可以直接執(zhí)行virtualenv環(huán)境下的命令。
新項(xiàng)目使用
# use python2
pipenv --two
# use python3
# pipenv --three
# use source doubanio
sed -i s/pypi.python.org/pypi.doubanio.com/g Pipfile
依舊是換源,接下來只需要pipenv install或pipenv install -d,來替代pip install即可。
pipenv --help
Usage: pipenv [OPTIONS] COMMAND [ARGS]...
Options:
--update 升級 pipenv, pip 到最新.
--where 輸出項(xiàng)目的目錄信息.
--venv 輸出 virtualenv 的目錄信息.
--py 輸出 Python 解析器的路徑.
--envs 輸出環(huán)境變量的設(shè)置.
--rm 刪除當(dāng)前 virtualenv.
--bare Minimal output.
--completion Output completion (to be evald).
--man 顯示使用手冊.
--three / --two 使用 Python 3/2 來創(chuàng)建 virtualenv
--python TEXT 直接指定 Python 解析器.
--site-packages 拷貝系統(tǒng) site-packages 到 virtualenv.
--jumbotron An easter egg, effectively.
--version 顯示版本信息并退出.
-h, --help 顯示當(dāng)前信息并退出.
Commands:
check 檢查安全漏洞和反對 PEP 508 標(biāo)記在Pipfile提供.
graph 顯示當(dāng)前依賴關(guān)系圖信息.
install 安裝提供的包,并加入 Pipfile 的依賴清單中
lock 生成 Pipfile.lock.
open 在編輯器(vim)查看一個(gè)特定模塊.
run 在 virtualenv 中執(zhí)行命令.
shell 切換到 virtualenv 中.
uninstall 刪除提供的包,并清理 Pipfile 的依賴清單中.
update 卸載當(dāng)前所以依賴,然后安裝最新包