Cx_freezeとeskyを使用してアプリを作成しようとしています。以前は機能していました(おそらく数か月前です。それ以来、python 3.5が出ました)。
次の例外があります。
File "/usr/lib/python3.5/site-packages/esky/util.py", line 578, in compile_to_bytecode
loader = importlib._bootstrap.SourceLoader()
AttributeError: module 'importlib._bootstrap' has no attribute 'SourceLoader'
私が使用しているもの:
そして、私はManjaro(Linux)を使用しています。問題がどこから来ているのかわかりません。手を貸していただけませんか。
うーん、ソースコードを見るとバグがあるかもしれません:
_if sys.version_info[:2] < (3, 1):
bytecode = imp.get_magic() + struct.pack("<i", 0)
bytecode += marshal.dumps(compile(source_code, compile_filename, "exec"))
Elif sys.version_info[:2] < (3, 4):
bytecode = imp.get_magic() + struct.pack("<ii", 0, 0)
bytecode += marshal.dumps(compile(source_code, compile_filename, "exec"))
else:
loader = importlib._bootstrap.SourceLoader()
code = loader.source_to_code(source_code, '<string>')
bytecode = importlib._bootstrap._code_to_bytecode(code, mtime=0, source_size=0)
_
その行を次のように置き換えてみてください。
loader = importlib._bootstrap_external.SourceLoader()
それが機能する場合は、3.5未満のバージョンを使用してみて、githubの問題ページでバグを送信してください。
私は今日、これと同じ問題に遭遇しました。
ターミナルで次のコマンドを実行すると、問題が解決しました。
➜ ~ pip install --upgrade pip
➜ ~ pip install --upgrade virtualenvwrapper
➜ ~ mkvirtualenv -p /usr/local/bin/python3 test_env