使用py2exe的scipy脚本

Vic*_*ira 6 python py2exe python-2.7

我在导出我的脚本(使用numpyscipy库)时通过py2exe以下方式遇到了这个问题:

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
Run Code Online (Sandbox Code Playgroud)

尝试:

  • 安装cython - 没用
  • 删除scipy依赖关系 - 这是有效的,即问题在于scipy和之间的合作py2exe.
  • 应用这个问题的解决方案- 没用

问题:

  • 我怎样才能做到这一点?
  • 我应该/不应该做些什么来避免这个问题?

附录:

这些是有问题的线:

from scipy.misc import imread
import numpy as np
Run Code Online (Sandbox Code Playgroud)

其实我也没有问scipy.linalgscipy.special,但在py2exe希望他们.

Jef*_*eff 5

我今天遇到了这个问题,从这里找到了一个更全面的解决方案.

opts = {"py2exe": {
    "includes": ['scipy', 'scipy.integrate', 'scipy.special.*','scipy.linalg.*']}}
Run Code Online (Sandbox Code Playgroud)

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

setup(options=opts,windows=['script.py'])
Run Code Online (Sandbox Code Playgroud)