簡體   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