【问题标题】:Weird error with py2exe and Sympypy2exe 和 Sympy 的奇怪错误
【发布时间】:2012-10-11 22:22:11
【问题描述】:

好的,我正在使用 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)

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

【问题讨论】:

    标签: python error-handling py2exe importerror sympy


    【解决方案1】:

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

    import sympy.assumptions.handlers.calculus 
    

    就在您导入 sympy 的位置。

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-23
        • 2012-08-12
        • 2018-02-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多