【发布时间】:2013-09-30 10:38:56
【问题描述】:
我正在使用 cx_freeze、Python3 和来自 lfd.uci.edu 的 Scipy 安装创建一个 Windows EXE。运行 exe 后,我收到错误:ImportError: cannot import name nonlin。
这里引用的 Scipy 文件行,在 site-packages\scipy\optimize_root.py 中:from . import nonlin。
我可以用 Python 加载控制台,并成功运行 import scipy.optimize.nonlin。
将 scipy.optimize.nonlin 添加到我的 setup.py 包含并不能解决问题。
nonlin.py 位于我的 scipy install 中的 optimize 目录中,其对应的位置为 cx_freeze 生成的库文件中的编译文件。
【问题讨论】:
-
你能显示冻结它的输出吗?
-
完整文件在这里(长):link 第 791 行:'m scipy.optimize.nonlin C:\Python33\lib\site-packages\scipy\optimize\nonlin.py' 我请注意第 1170 行附近的“复制”部分中没有 nonlin.pyd。不知道它是否应该在那里,并且该文件不在我的 Python 安装中。
-
不,它是一个 .py 文件,而不是一个 .pyd,所以它会被复制到 zip 文件中,就像你发现的那样。我不确定,但相对导入语法可能有问题。您使用的是最新版本的 cx_Freeze 吗?希望我们很快就会有一个新版本供您试用。
-
我使用的是 cx_Freeze 4.3.1。期待新版本。我目前正在尝试安装dev version,并与mingw战斗。
-
希望在接下来的一两周内 - 我们需要先解决 setuptools 的问题。抱歉,AFAIK 没有人构建开发版本的二进制文件。
标签: python python-3.x import scipy cx-freeze