フリーズしたアプリケーションを実行しているときに問題がcx_Freeze
発生しています (フリーズしていなくても問題なく動作します)。
プログラムを実行すると、次のトレースバックが発生します。
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/cx_Freeze/initscripts/Console.py", line 27, in <module>
exec code in m.__dict__
File "PythonApp/mainframe.py", line 3, in <module>
File "/usr/local/lib/python2.7/site-packages/dbus/__init__.py", line 103, in <module>
from dbus._dbus import Bus, SystemBus, SessionBus, StarterBus
File "/usr/local/lib/python2.7/site-packages/dbus/_dbus.py", line 39, in <module>
from dbus.bus import BusConnection
File "/usr/local/lib/python2.7/site-packages/dbus/bus.py", line 39, in <module>
from dbus.connection import Connection
File "/usr/local/lib/python2.7/site-packages/dbus/connection.py", line 27, in <module>
import threading
File "/usr/local/lib/python2.7/threading.py", line 44, in <module>
module='threading', message='sys.exc_clear')
File "/usr/local/lib/python2.7/warnings.py", line 57, in filterwarnings
import re
File "/usr/local/lib/python2.7/re.py", line 105, in <module>
import sre_compile
File "/usr/local/lib/python2.7/sre_compile.py", line 14, in <module>
import sre_parse
File "/usr/local/lib/python2.7/sre_parse.py", line 17, in <module>
from sre_constants import *
File "/usr/local/lib/python2.7/sre_constants.py", line 18, in <module>
from _sre import MAXREPEAT
ImportError: cannot import name MAXREPEAT
ソースからビルドしたpython 2.7.4のバージョンを使用してLinuxを使用しており_sre
、プロンプトからのインポートが機能し、MAXREPEAT
定数にアクセスできます。
これは通常、cx_Freeze
すべてを取り込まないことが原因であり、セットアップ インクルード リストでlibrary.zip
モジュールに明示的に名前を付けることで修正できます。これがこの同様の質問の解決策ですが、ここでは役に立ちませんでした。cx_Freeze
この_sre
モジュールは奇妙に思えます.生成さ_sre
れたファイルにはファイルがありませんlibrary.zip
が、そのエラーから、それを見つけることができるようですが、そのシンボルをインポートできませんか? 確かに、モジュールが存在しない場合は " No module named _sre
" エラーになります。または、循環インポートの可能性がありますが、_sre
スタブにはインポートがありません。
奇妙なのは、ファイルが見つからないように見えることです-このモジュールは、何らかの方法でインポートするときに動的に作成されますか?
find /usr/local/lib/python2.7 -name "_sre*"
何も返さず、インポートされた_sre
モジュールにも__file__
属性がないため、組み込みとして表示されるため、それが含まれていることを確認する方法がわかりません。
>>> import _sre
>>> _sre.__file__
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute '__file__'
>>> repr(_sre)
"<module '_sre' (built-in)>"
これは、最近尋ねられたこの質問にも似ていますが、この場合、彼は通常のインタープリターでエラーを取得していましたが、私にとってはcx_Freeze
.
編集
実行python -v
は組み込みのように見えるので、なぜcx_Freeze
それを見逃すのか、どうすれば修正できるのかわかりません。
...
# /usr/local/lib/python2.7/re.pyc matches /usr/local/lib/python2.7/re.py
import re # precompiled from /usr/local/lib/python2.7/re.pyc
# /usr/local/lib/python2.7/sre_compile.pyc matches /usr/local/lib/python2.7/sre_compile.py
import sre_compile # precompiled from /usr/local/lib/python2.7/sre_compile.pyc
import _sre # builtin
# /usr/local/lib/python2.7/sre_parse.pyc matches /usr/local/lib/python2.7/sre_parse.py
import sre_parse # precompiled from /usr/local/lib/python2.7/sre_parse.pyc
...