9

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'

私は使用しています:

  • パイソン 3.5.0
  • Esky 0.9.9 (最新) pypi から
  • cx_freeze 4.3.4-2

そして、私はManjaro(Linux)を使用しています。問題がどこから来たのかわかりません。手を貸していただけますか?

4

4 に答える 4

6

今日も同じ問題に遭遇しました。

ターミナルで次のコマンドを実行すると、問題が解決しました。

➜  ~ pip install --upgrade pip
➜  ~ pip install --upgrade virtualenvwrapper
➜  ~ mkvirtualenv -p /usr/local/bin/python3 test_env
于 2017-07-11T20:19:17.817 に答える
2

うーん、ソースコードを見るとバグがあるかもしれません:

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 の問題ページでバグを送信してください。

于 2015-10-27T10:49:01.343 に答える
1

このコマンドを実行すると、問題が解決します

python3 -m ensurepip --upgrade
于 2021-04-11T09:18:04.940 に答える