scipy 使用 py2exe 的脚本

Script with scipy using py2exe

在通过 py2exe:

导出我的脚本(使用 numpyscipy 库)期间,我有 运行
Traceback (most recent call last):
File "imPok.py", line 3, in <module>
File "scipy\misc\__init__.pyc", line 49, in <module>
File "scipy\special\__init__.pyc", line 603, in <module>
File "scipy\special\basic.pyc", line 18, in <module>
File "scipy\special\orthogonal.pyc", line 101, in <module>
File "scipy\linalg\__init__.pyc", line 188, in <module>
File "scipy\linalg\_decomp_update.pyc", line 12, in <module>
File "scipy\linalg\_decomp_update.pyc", line 10, in __load
File "scipy/linalg/_decomp_update.pyx", line 1, in init scipy.linalg._decomp_update (scipy\linalg\_decomp_update.c:35768)
ImportError: No module named cython_blas

尝试过:

问题:

附录:

这些是有问题的行:

from scipy.misc import imread
import numpy as np

我实际上并没有要求 scipy.linalgscipy.specialpy2exe 想要它们。

scipy.misc 必须有 scipy.linalg.cython_blas 作为依赖项。要解决此问题,请在 "options > include" 级别的 py2exe 安装脚本中包含以下包:

scipy.linalg.cython_blas

我今天 运行 解决了这个问题,并从 here 找到了更彻底的解决方案。

opts = {"py2exe": {
    "includes": ['scipy', 'scipy.integrate', 'scipy.special.*','scipy.linalg.*']}}

然后,在您的 setup.py 脚本中,使用:

setup(options=opts,windows=['script.py'])