繁体   English   中英

py2exe和Sympy的奇怪错误

[英]Weird error with py2exe and Sympy

好的,我正在使用SymPy制作一个程序。 我使用sympy.Eq,sympy.solve和sympy.Symbol。 当我编译我的程序并运行使用sympy.solve,sympy.Eq和sympy.Symbol的命令(它是用户界面)时。 它在未编译时非常有效,但是当我使用py2exe(作为捆绑的可执行文件)编译它时,它会给出我的错误:

Traceback (most recent call last):
  File "RateTime.py", line 46, in <module>
  File "RateTime.py", line 33, in main
  File "RateTime.py", line 4, in get_catch_up_time
  File "sympy\solvers\solvers.pyc", line 883, in solve
  File "sympy\solvers\solvers.pyc", line 316, in check_assumptions
  File "sympy\assumptions\ask.pyc", line 88, in ask
  File "sympy\assumptions\assume.pyc", line 94, in _eval_ask
  File "sympy\assumptions\assume.pyc", line 157, in eval
  File "sympy\utilities\source.pyc", line 26, in get_class
ImportError: No module named handlers

我尝试更改source.py中的代码

lookup_view = getattr(__import__(mod_name, {}, {}, ['*']), func_name)

exec "import "+mod_name+" as MODULE"
lookup_view = getattr(MODULE, func_name)

即使项目没有编译,它也给了我错误。 我假设没有包含同意的python文件,因为它通常不是立即导入的。 我不得不改回来。 有没有办法解决这个问题? 我真的需要将我的python项目作为可执行文件分发。 谢谢!

我认为ImportError确实意味着py2exe没有获取sympy.assumptions.handlers及其子模块。 最简单的解决方法可能是添加

import sympy.assumptions.handlers.calculus 

你进口同情的地方。

除了“微积分”之外,您可能需要对“order”,“sets”和“ntheory”执行相同的操作。

如果您不介意更改sympy代码,我想您可以将这些文件添加到相关的__init__.py文件中,以便在sympy时将其导入。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM