python - 在 `pip install` ing 时可选择排除一些依赖项

标签 python pip dependencies setuptools setup.py

setuptools 提供了一种经常使用的方式来指定可选依赖项 extras_require .有没有办法做相反的事情?也就是说,有

pip install mypackage

安装全套依赖项,但要有类似的东西

pip install mypackage[core]

pip install --core-option mypackage

只安装一组有限的核心依赖项?它不必像 extras_require,只是在 pip 安装中指定仅需要核心依赖项的某种方式。

(对于某些包,在安装方面打破向后兼容性是一个困难的选择,尤其是当大多数用户需要所有依赖项时。然而,一些用户可能需要避免核心功能不需要的大量或损坏的依赖项。 )

最佳答案

如果一个库是依赖的,这意味着您的代码需要它并且没有它就无法工作,所以我认为使用标志是不可能的。

所以我会在根目录中保留一个 requirements.txt 用于核心功能,并在其旁边保留一个 optional-requirements.txt

连同 readme.md 中的简短指南,使用 pip install requirements.txt 获取核心和 pip install optional-requirements.txt 以获取代码运行不需要的其他内容。喜欢更好的调试。

我强烈建议在自述文件中加入您安装或未安装可选包的不同之处。

关于python - 在 `pip install` ing 时可选择排除一些依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67165092/

相关文章:

python - 在特定核心上使用 python 启动程序

python - 每个 PowerShell 调用 Python 脚本并传递 PSObject 并返回解析的数据

python - 安装 mariadb 包时找不到 mariadb_config

python-3.x - 导入错误 : No module named 'scipy._lib'

java - 配置根项目时出错 'BoomMenu-master'

python - 如何制作 Matplotlib 动画 fiddle 图?

python - python中类方法的第一个参数是什么?

python - 使用 pip3 : ModuleNotFoundError: No module named 'pip._vendor.packaging.__about__' 时出现错误

android - 为什么gradle认为我的 'libraries'目录是一个项目

scala - 首次运行时无法下载 SBT(Scala 的构建工具)的依赖项