我在通过 py2exe
导出我的脚本(使用 numpy
和 scipy
库)时遇到了这个问题:
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
尝试过:
- 正在安装 cython - 没用
- 删除
scipy
依赖项 - 有效,即问题在于scipy
和py2exe
之间的协作。 - 应用 this question 的解决方案- 没用
问题:
- 我怎样才能让它发挥作用?
- 一般情况下我应该/不应该做什么来避免这些问题?
附录:
这些是有问题的行:
from scipy.misc import imread
import numpy as np
我实际上并没有请求 scipy.linalg
和 scipy.special
而 py2exe
想要它们。
最佳答案
我今天遇到了这个问题,从here找到了更彻底的解决方案.
opts = {"py2exe": {
"includes": ['scipy', 'scipy.integrate', 'scipy.special.*','scipy.linalg.*']}}
然后,在您的 setup.py 脚本中,使用:
setup(options=opts,windows=['script.py'])
关于python - 使用 py2exe 的 scipy 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30754772/