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