我正在开发一个主要使用 NumPy 和一个 SciPy 模块(scipy.optimize.fsolve)的小工具。我与其他人分享它的想法是它与 Portable Python 一起打包,这样理论上每个人都可以运行它。
整个 SciPy 包很重(大约 80 mb)。是否可以仅将 1 个模块编译到 *.pyd 中并将其作为任何其他模块导入,这样我就不必包含我实际上不需要的模块?
我正在开发一个主要使用 NumPy 和一个 SciPy 模块(scipy.optimize.fsolve)的小工具。我与其他人分享它的想法是它与 Portable Python 一起打包,这样理论上每个人都可以运行它。
整个 SciPy 包很重(大约 80 mb)。是否可以仅将 1 个模块编译到 *.pyd 中并将其作为任何其他模块导入,这样我就不必包含我实际上不需要的模块?
如果您只想用您的代码(尤其是scipy.optimize.fsolve
)分发 SciPy 代码的子集,有几种可能性,
fsolve
函数所需的文件。快速浏览后,至少,,,scipy/optimize/optimize.py
(但也许我错过了几个)。scipy/optimize/minpack.py
scipy/optimize/_minpack.so/.pyd
scipy/weave
,scipy/sparse
等scipy/linalg
。scipy.optimize.fsolve
并使用 cython 将其编译为 C 代码,这应该会生成一个独立的 .pyd/.so应该有一个 python 模块来自动执行此操作,例如pyinstaller
在它生成的二进制可执行文件中只包含所需的模块。所以你需要一个等效的pyinstaller
生成动态库。