我正在尝试从我的python脚本创建一个可执行文件。我的脚本运行正常,但冻结后,启动.exe会出现以下错误:
http://www.bild.me/bild.php?file=4663406scipyerror.png
我使用的是Python 3.2.3,Scipy 0.12.0b1,Numpy 1.7.0和Matplotlib 1.2.0(全32位)。
有关如何解决此问题的任何想法/提示?我的猜测是我必须在我的冻结脚本中手动包含一些东西,但我的猜测已经用完了: - (
我终于得到了它的工作,但我对我的解决方案非常不满意:
1)将SciPy包中的_odepack.pyd
和odepack.py
复制到我的程序文件夹
2)在odepack.py
中将from . import _odepack
更改为import _odepack
(否则会引发ValueError: Attempted relative import in non-package
)
3)在我的主要更改from scipy.integrate import odeint
到from odepack import odeint
现在它正在按预期工作,在使用cx_freeze之后它仍在工作。
仍然不知道为什么它以前不会起作用: - (
感谢ThomasK让我朝着正确的方向前进: - )
答案 0 :(得分:2)
我终于通过在cx setup-file中指定“scipy.integrate.vode”作为包含来解决这个vode问题。这导致文件“scipy.integrate.vode.pyd”结束在build文件夹中。我在Windows上使用SciPy 0.11,Python 3.2.3和最新的cx。
但是手动将这样的“scipy.integrate.vode”文件添加到构建文件夹也不能解决问题,即使许多其他.pyd文件需要这样的手动包含修复程序,cx也找不到(并且上面的setup.py包含解决方案将不起作用)...
感谢分享你的苦恼和智慧,不会设法冻结我的程序其他意图...