pip命令的包装器,用于自动更新需求文件
项目描述
pipm
使用pip、需求文件和setup.cfg进行Python包管理。
安装
- 建议仅在虚拟环境中安装
从PyPI安装
pip install pipm
注意
- 此工具会操作您所有的需求文件。因此,请确保使用版本控制软件或备份您的文件以跟踪更改。
快速入门
- pip和pipm命令将正常工作。
- 为项目创建一个虚拟环境并使用以下命令安装pipm
pip install pipm
- 创建别名
alias pip=pipm
或直接使用pipm
I. 安装
- 从基本需求文件(
requirements.txt
)安装所有依赖项
pipm install
pipm install --all # *requirements*.txt - all environment -> test/prod/dev
2. 向项目中添加新包
pipm install pkg-name
pipm install pkg-name --dev # as development dependency
pipm install pkg-name --test # as testing dependency
3. 移除包
- 移除一个或多个包。它们的依赖项也将被卸载。不会有孤立的包。
pipm uninstall pkg-name
4. 更新requirements.txt中的所有依赖项
pipm update
pipm update --dev
功能
- 没有新的文件集。
*-requirements.txt
像锁文件一样使用固定版本 - 这是一个封装了标准pip的
install/uninstall
命令的工具。因此,所有的命令行选项都将正常工作。 - 处理多个
requirements
文件和setup.cfg
存储抽象依赖。
命令
1. install
- 封装了标准的
pip install
命令,并接受所有标准选项
以下是pipm
带来的额外功能:
- 额外功能
- 当提供包名时,它将被保存到当前目录下的requirements.txt文件中。如果您有
requirements
目录结构并且其中包含base.txt
,则将使用该文件。否则,它将在当前目录中创建一个。 - 当没有提供包名时,相当于
-r requirements.txt
,它将安装当前目录下的所有依赖。
- 当提供包名时,它将被保存到当前目录下的requirements.txt文件中。如果您有
- 附加选项:它将按照以下模式搜索匹配项
<name>-requirements.txt
或requirements/<name>.txt
或requirements-<name>.txt
,当提供包名时保存到文件中,否则相当于传递要求文件名。--dev
- 保存到开发需求--prod
- 保存到生产需求--test
- 保存到测试需求--doc
- 保存到文档需求--env <name>
- 如果您有任何属于单独文件的特殊需求集合,可以在这里传递名称。
2. uninstall
- 封装了标准的
pip uninstall
命令 - 别名
rm
可用 - 在卸载包时,此命令还会检查不再由用户安装的任何包所依赖的包,并删除它们
- 当然,它也会从
requirements
文件中删除包
3. update
- 新命令
- 相当于使用带有
--upgrade
标志的pip install
- 在没有参数的情况下更新单个包或整个环境。
- 默认情况下,包将交互式更新
- 将
--auto-update
设置为禁用此功能
- 将
4. save/freeze
- 扩展了标准freeze命令,以保存当前安装的包
开发
- 克隆仓库并创建新的虚拟环境
git clone git@github.com:jnoortheen/pipm.git
cd pipm
pew new pipm -a .
pip install -r dev-requirements.txt
- 以从本地源进行测试
pip install -e .
- 提交信息应遵循此风格指南。
测试
- 从根目录运行
invoke test
。
替代方案及其问题(个人看法)
- pipenv
- 适用于仅有一个虚拟环境的项目本地开发
- 当需要部署到生产服务器或保持多个虚拟环境时,则不适用
- 最好单独使用
pew
而不是随该工具提供的shell命令
- pip-tools
- 另一组要跟踪的文件,以及要记住的附加命令
- poetry
- 比
pipenv
更健壮 - ~~我遇到的问题与在远程服务器/Docker环境中安装依赖项有关。~~
较长的安装/更新时间~~随着项目的成熟,此问题可能会得到解决。~~- 自1.1版本以来,这些问题已得到解决。
- 建议在可能的情况下使用poetry创建新项目。
- 比
- dephell
- 尚未使用。但它似乎也处理要求文件和其他格式。
TODOs
- rm将检查包是否存在于setup.cfg中
项目详情
下载文件
下载适合您平台的文件。如果您不确定该选择哪个,请了解有关安装包的更多信息。
源分布
pipm-22.2.3.tar.gz (11.9 kB 查看哈希值)
构建分布
pipm-22.2.3-py3-none-any.whl (13.9 kB 查看哈希值)