'importlib._bootstrap'没有属性'SourceLoader'

2024-04-29 15:30:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用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'

我用的是:

  • Python3.5.0
  • 来自pypi的Esky 0.9.9(最新)
  • cx U冻结4.3.4-2

我在Manjaro(Linux)上。我搞不清问题从何而来。你能帮我一下吗?


Tags: py应用程序libpackagesusrutilsiteimportlib
3条回答

嗯,在查看源代码时可能有一个错误:

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发布页面中提交一个bug。

我可以通过运行:

pip3 uninstall setuptools
pip3 install setuptools

我今天碰到了同样的问题。

在终端中运行以下命令解决了我的问题。

➜  ~ pip install --upgrade pip
➜  ~ pip install --upgrade virtualenvwrapper
➜  ~ mkvirtualenv -p /usr/local/bin/python3 test_env

相关问题 更多 >