3

我正在使用 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 安装中的优化目录中,其对应位置为库文件 cx_freeze 生成的编译文件。

4

1 回答 1

0

我在使用 cx_Freeze 和 Scipy 时遇到了很多问题。我真正发现的唯一工作是将缺少的模块添加到“includes”选项中,或者手动将所需的文件添加到“include_files”选项中。

这个链接帮助我进行插值。 https://bitbucket.org/anthony_tuininga/cx_freeze/issue/43/import-errors-when-using-cx_freeze-with

{"includes": ["scipy.special._ufuncs_cxx"],
 "include_files": [(python_exe_path+"/Lib/site-packages/scipy/sparse/sparsetools/_csr.pyd",
                    "_csr.pyd") ],
}

这对您来说不是完全相同的问题,但它可以帮助您找到所需的文件以正确包含它们。“includes”对您不起作用,因此您可以根据搜索文件的位置使用“include_files”或“zip_includes”手动添加它。

{"zip-include": (python_exe_path+"/Lib/site-packages/scipy/optimize/nonlin.py, 
                 "scipy/optimize/nonlin.py")}
于 2014-05-02T13:47:28.427 回答