'importlib. bootstrap "не имеет атрибута "SourceLoader"

Я пытаюсь создать приложение с помощью 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'

Я:

  • Python 3.5.0
  • Esky 0.9.9 (последний) от pypi
  • cx_freeze 4.3.4-2

и я на Manjaro (Linux). Я не могу понять, откуда эта проблема. Не могли бы вы мне помочь, пожалуйста? ?

2 ответов


mmm там может быть ошибка, глядя на исходный код:

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