gpt4 book ai didi

python - 将单个 SciPy 模块编译为 *.pyd

转载 作者:行者123 更新时间:2023-11-28 17:36:49 24 4
gpt4 key购买 nike

我正在开发一个主要使用 NumPy 和一个 SciPy 模块 (scipy.optimize.fsolve) 的小工具。我与他人分享它的想法是它与 Portable Python 打包在一起,这样理论上每个人都可以运行它。

整个 SciPy 包很重(大约 80 MB)。是否可以只将 1 个模块编译到 *.pyd 中并将其作为任何其他模块导入,这样我就不必包含我实际上不需要的模块?

最佳答案

如果您只想使用您的代码(特别是 scipy.optimize.fsolve)分发 SciPy 代码的子集,则有几种可能性,

  1. 查看 SciPy 源代码并仅复制 fsolve 函数所需的文件。快速浏览后至少是 scipy/optimize/optimize.py, scipy/optimize/minpack.py, scipy/optimize/_minpack.so/.pyd(但也许我错过了几个)。
  2. 更简单的方法是,逐个文件夹删除 scipy 安装目录中未使用的部分(尤其是那些占用大量空间的部分),包括 scipy/weavescipy/sparse, scipy/linalg
  3. 围绕scipy.optimize.fsolve编写一个简单的包装器,并用cython将其编译成C代码,这应该会产生一个独立的.pyd/.so

应该有一个 python 模块来自动执行此操作,例如 pyinstaller 确实只在它生成的二进制可执行文件中包含所需的模块。因此,您需要生成动态库的等效 pyinstaller

关于python - 将单个 SciPy 模块编译为 *.pyd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29696126/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com