如果我的项目依赖于 scipy 中的一个函数,我的项目是否必须包含整个 scipy 包?

If my project depends on one function from scipy, does my project have to include the whole scipy package?

所以我的项目使用 scipy.ndimage.filters 包中的 gaussian_filter1d。我正在制作 setup.py 文件,该文件将告诉 pip 我的项目应该安装哪些依赖项。我真的不希望我的包需要为一个功能完整下载 scipy。我意识到 gaussian_filter1d 在其代码中使用了 scipy 中的其他函数,但我想知道是否有一种方法可以只包含 gaussian_filter1d 和它需要的函数而不是整个 scipy 项目。

我的直觉告诉我不,但我想我会问以防万一:P

from scipy.ndimage.filter import gaussian_filter1d

会完成这项工作。但是任何基础 Python 教科书都会告诉你这一点。

如果您确实需要此功能并且找不到轻量级替代品或自己编写代码,那么我想您必须将其包含在需求中。如果您的项目对 slug 大小不敏感,那么添加广泛使用的依赖项并不是真正的大问题。不过,请务必在您的项目中指定 scipy 的版本。