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 仍然是实验性特性,可能存在不稳定性和较大变动,注意关注最新变化!。

 

posted @   游小刀  阅读(6586)  评论(2编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
levels of contents
点击右上角即可分享
微信分享提示