首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >py2exe与无模代数

py2exe与无模代数
EN

Stack Overflow用户
提问于 2014-11-19 09:20:31
回答 2查看 321关注 0票数 0

我试图使用py2exe在一个使用库辅助程序(微分方程求解器)的软件上构建一个可执行文件。遇到的问题是,在执行过程中,我收到:

ImportError:没有称为代数的模块

确切的错误信息是:

代码语言:javascript
复制
Traceback (most recent call last):
  File "main.py", line 89, in <module>
    from simulation.simulation import Simulation
  File "simulation\simulation.pyc", line 18, in <module>
    manages all the action linked to a simulation, like running, saving, replay, etc...
  File "solver\assimuloSolver.pyc", line 7, in <module>
    Explicit solver to choose in the list of assimulo solvers:
  File "assimulo\solvers\__init__.pyc", line 25, in <module>
  File "assimulo\solvers\kinsol.pyc", line 12, in <module>
  File "assimulo\solvers\kinsol.pyc", line 10, in __load
  File "kinsol.pyx", line 1, in init assimulo.solvers.kinsol (assimulo\solvers\kinsol.c:19711)
ImportError: No module named algebraic

在这里,qe可以看到,是第7行产生了我的麻烦,这条线是

代码语言:javascript
复制
from assimulo.solvers import Radau5DAE

用于setup.py的py2exe文件如下所示:

代码语言:javascript
复制
from distutils.core import setup
from py2exe.build_exe import py2exe
import sys
from glob import glob
import matplotlib

data_files = [("Microsoft.VC90.CRT", glob(r'C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT\*.*'))]
data_files.extend(matplotlib.get_py2exe_datafiles())
sys.path.append("C:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\VC\\redist\\x86\\Microsoft.VC90.CRT")

excludes = ['_gtkagg', '_tkagg']
includes = [
            "scipy.sparse.csgraph._validation", 
            "scipy.special._ufuncs_cxx", 
            ]

opts = {
    "py2exe": {
        "includes":includes,
        "excludes":excludes,
    }
}

setup(name = "MySoft", 
      version = "0.1", 
      data_files=data_files, 
      windows=[{"script":"main.py"}], options=opts)

如果有人有线索,我会很感兴趣的。谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-19 11:16:23

解决我的问题的方法是在包含选项中添加代数包:

代码语言:javascript
复制
includes = ["assimulo.algebraic"]

还必须确保将库添加到PATH变量中。如果没有,可以简单地添加sys.path.append(“到库的路径”),在我的例子中是

代码语言:javascript
复制
sys.path.append("C:\\Python27\\Lib\\site-packages\\assimulo")

在安装文件中

谢谢你的帮助

票数 0
EN

Stack Overflow用户

发布于 2014-11-19 09:47:21

有时,我发现py2exe未能包含包,即使在packages选项中列出时也是如此,但是我发现如果我在setup.py中导入包,它就会开始工作,所以请尝试在setup.py顶部附近添加

代码语言:javascript
复制
import assimulo

你有时会发现

代码语言:javascript
复制
if False:
    import assimulo

将工作,(使用这是assimulo做了大量的设置导入)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27013043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档