2015-10-27 7 views
7

私はcx_freezeとeskyでアプリケーションをビルドしようとしています。それは前に働いていました(それは数ヶ月前です。それ以来、python 3.5が出ていました)。'importlib._bootstrap'に 'SourceLoader'属性がありません

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' 

私が使用している:

  • のPython 3.5.0
  • Eskyの0.9.9(最新)は、PyPI
  • cx_freeze 4.3から

    は、私は次の例外があります。 4-2

私はManjaro(Linux)です。問題がどこから来ているのか分かりません。私に手を差し伸べてもらえますか?

答えて

1

は、ソースコードを見てそこにバグがあるかもしれませんMMM:それはあまりを使ってみて、その後に動作している場合

loader = importlib._bootstrap_external.SourceLoader()

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) 

は、あなたがその行を置き換えるしようとすることができます3.5よりも古いバージョンで、githubの問題ページにバグを提出してください。

+0

ハム、それはまだ動作しますが、別の理由ではありません: '' 'はAttributeError:モジュールのimportlib._bootstrap 'は、同じファイルの行580で何の属性」_code_to_bytecode''''を持っていません。ちなみに、2行先に移動しました:) – Rififi

+1

はい、その行も'bytecode = importlib._bootstrap_external._code_to_bytecode(code、mtime = 0、source_size = 0)に変更する必要があるためです。 – lapinkoira

+0

これは単なる修正ですより多くのものはうまく動作しないので、python3.5でちょっとバグがあると思っています。それとも問題があります。 – lapinkoira

6

今日も同じ問題が発生しました。

端末で次のコマンドを実行すると、私の問題が解決しました。

➜ ~ pip install --upgrade pip 
➜ ~ pip install --upgrade virtualenvwrapper 
➜ ~ mkvirtualenv -p /usr/local/bin/python3 test_env 
関連する問題