在“pip install”时可选择排除一些依赖项

Lin*_*ios 5 python dependencies pip setuptools setup.py

setuptools正如经常使用的那样,提供了一种使用 指定可选依赖项的方法extras_require。有没有办法做到相反?也就是说,要有

\n
pip install mypackage\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n
pip install mypackage[core]\n
Run Code Online (Sandbox Code Playgroud)\n

或者

\n
pip install --core-option mypackage\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n

(对于某些软件包,在安装方面破坏向后兼容性是一个困难的选择,特别是当大多数用户想要所有依赖项时。尽管如此,某些用户可能需要避免核心功能不需要的大量或破坏的依赖项。)

\n

小智 1

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

因此,我会requirements.txt在核心功能的根目录中保留一个,并optional-requirements.txt在其旁边保留一个。

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

如果您安装或未安装可选软件包,我强烈建议您在自述文件中放入不同的内容。