pip和pipfile


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 仍然是實驗性特性,可能存在不穩定性和較大變動,注意關注最新變化!。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM