有了 Pipenv ,你會放棄 virtualenv + virtualenvwrapper 嗎? 作者:zeromake 來源:https://blog./pages/pipenv-use
最近用了 pipenv 感覺挺不錯的,寫篇博文來推廣一下。 一、優(yōu)點(diǎn)自動關(guān)聯(lián)項目相關(guān)的 virtualenv ,能夠快速的加載 virtualenv 。 提供的 pipenv 替代 pip 并自帶一個依賴清單 Pipfile ,和依賴鎖定 Pipfile.lock 。 其中 Pipfile 除了依賴清單還支持固定 pypi 源地址,固定 python 版本。 Pipfile 還支持 dev 依賴清單. pipenv install 的包會強(qiáng)制使用 Pipfile 中的源.
解決了 pip install pandas 時里的 numpy 依舊走官方 pypi . 還有就是可以直接切換 python2,3 使用 pipenv graph 命令可以看到依賴樹
二、缺點(diǎn)windows 上切入 virtualenv ,命令行開頭無 virtualenv 名字。
Pipfile 中的 pypi 源無法默認(rèn)設(shè)置,造成每次都需要手動修改。
pipenv 終究用的是 virtualenv ,無法像 nvm 這種做到 python 管理。
python2,3 切換時是刪除上次的 virtualenv ,所以每次切換都要重新安裝依賴。
pipenv uninstall 無法以依賴樹的關(guān)系進(jìn)行卸載。
三、快速使用安裝pipenv 作為一個 python 包,最快的安裝方案當(dāng)然是。
注意 linux 可能沒有權(quán)限,如果有直接的系統(tǒng)包建議安裝系統(tǒng)包 原有項目使用打開項目目錄控制臺執(zhí)行下面命令 pipenv --two
sed -i s/pypi.python.org/pypi.doubanio.com/g Pipfile
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 還有一個 pipenv run 的可以直接執(zhí)行 virtualenv 環(huán)境下的命令。 新項目使用pipenv --two
sed -i s/pypi.python.org/pypi.doubanio.com/g Pipfile
依舊是換源,接下來只需要 pipenv install 或 pipenv install -d ,來替代 pip install 即可。 pipenv --helpUsage: pipenv [OPTIONS] COMMAND [ARGS]...
Options:
--update 升級 pipenv, pip 到最新.
--where 輸出項目的目錄信息.
--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)查看一個特定模塊.
run 在 virtualenv 中執(zhí)行命令.
shell 切換到 virtualenv 中.
uninstall 刪除提供的包,并清理 Pipfile 的依賴清單中.
update 卸載當(dāng)前所以依賴,然后安裝最新包
|