pip常用命令
基本用法:pip install SomePackage,等效於 python -m pip install SomePackage。 明確指定版本號:pip install SomePackage==1.0.0。 指定最小版本號:pip install SomePackge>=1.0.0。 指定版本號區間:pip install SomePackage>=1.0.0,<2.0.0。 pip 也支持直接從文件讀取包列表以便批量安裝,通常命名為 requirements.txt,可以使用 pip install -r requirements.txt 來安裝。requirements.txt 文件內容是如下的扁平格式: SomePackage1 SomePackge2>=1.0.0 SomePackage3>=1.0.0,<2.0.0
pipfile與pipfile.lock
Pipfile 與 Pipfile.lock 是社區擬定的依賴管理文件,用於替代過於簡陋的 requirements.txt 文件。
Pipfile文件是 TOML (什么是toml格式中文)格式而不是requirements.txt這樣的純文本。- 一個項目對應一個
Pipfile,支持開發環境與正式環境區分。默認提供default和development區分。 - 提供版本鎖支持,存為
Pipfile.lock
示例:
[[source]] url = 'https://pypi.python.org/simple' verify_ssl = true [requires] python_version = '2.7' [packages] requests = { extras = ['socks'] } Django = '>1.10' pinax = { git = 'git://github.com/pinax/pinax.git', ref = '1.4', editable = true } [dev-packages] nose = '*'
PEP508支持
可以設置支持的運行環境:
[requires] python_full_version = '3.6.0b1' platform = 'windows'
pipenv支持
pipenv 提供了 -p/--pipfile 參數用於安裝 Pipfile,類似 -r/--requirement 會默認尋找 requirements.txt 文件,如果沒有指定 -p 的參數將會自動尋找 Pipfile 文件。
直接使用pipenv install 即可 也可以使用 pipenv intall -r requirements.txt 例如: pipenv install # 沒有參數會自動尋找 Pipfile 文件 pipenv install -p Pipfile.lock # 根據 Pipfile.lock 安裝指定依賴 需要注意的是,pipenv install -p 安裝時會自動生成或更新 Pipfile.lock 文件。
pipfile.lock
Pipfile.lock 是根據 Pipfile 和當前環境自動生成的 JSON 格式的依賴文件,任何情況下都不要手動修改該文件! 生成命令:pip freeze -p Pipfile。 或者:pip freeze -p different_pipfile,將會生成 different_pipfile.lock。
pipenv
pipenv 是 Pipfile 主要倡導者、requests 作者 Kenneth Reitz 的一個庫,有機的結合了 Pipfile 、pip 和 virtualenv。
主要特性
- 根據
Pipfile自動尋找項目根目錄。 - 如果不存在,可以自動生成
Pipfile和Pipfile.lock。 - 自動在項目目錄的
.venv目錄創建虛擬環境。(暫時需要設置export PIPENV_VENV_IN_PROJECT=1) - 自動管理
Pipfile新安裝和刪除的包。 - 自動更新 pip。
基本命令
pipenv --where:尋找項目根目錄。- pipenv --rm: 刪除環境
pipenv install:安裝Pipfile中所列的所有包。pipenv install --dev:安裝Pipfile中 dev 環境所列的所有包。pipenv uninstall:卸載所有包。pipenv install pytest --dev:在dev環境中安裝 pytest 包。pipenv lock:確認Pipfile中所有包已安裝,並根據安裝版本生成Pipfile.lock。pipenv shell:應用虛擬環境。- exit : 退出
自動補全
由於 pipenv 的命令行程序是基於 Click 庫,因此自帶了 Bash 補全功能,只需要運行或者將這行代碼加入 Bash 啟動腳本:eval "$(_FOO_BAR_COMPLETE=source foo-bar)"。 對於 Zsh,需要將這行代碼改為 eval "$(_PIPENV_COMPLETE=source-zsh pipenv)"。 最后,Pipfile 和 pipenv 仍然是實驗性特性,可能存在不穩定性和較大變動,注意關注最新變化!。
