PyInstaller:AttributeError“module”对象没有属性“register”

2024-06-08 08:49:09 发布

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

我正在处理一个大型python项目,在这个项目中,脚本最终由PyInstaller打包。上周我打包和运行我的应用程序没有问题。本周我在打包我的脚本时没有任何错误。然而,当我现在运行我的可执行文件时,我似乎得到了一个相当普遍的错误,但来自一个奇怪的来源:

    Traceback (most recent call last):
  File "<string>", line 120, in <module>
  File "/usr/local/lib/python2.7/dist-packages/PyInstaller/loader/pyi_importers.py", line 271, in load_module
    exec(bytecode, module.__dict__)
  File "/tmp/build/tmpDJZeLr/out00-PYZ.pyz/encodings", line 157, in <module>
AttributeError: 'module' object has no attribute 'register'

我在代码中寻找罪魁祸首,但是在我的项目中没有一个名为“register”的属性/函数/etc。我试图在我自己的代码中添加一些调试语句,但是在这个错误出现之前,我的脚本中没有一个函数被调用。在

然后我决定在pyi中添加一些print语句_进口商.py70号线附近:

^{pr2}$

结果是:

<module 'encodings.aliases' from '/tmp/_MEIbDiUZq/encodings/aliases.pyc'>
{'__name__': 'encodings.aliases', '__file__': '/tmp/_MEIbDiUZq/encodings/aliases.pyc', '__loader__': <pyi_importers.FrozenImporter object at 0x7f1666fa0d10>, '__doc__': None, '__package__': 'encodings'}
<code object <module> at 0x7f1666fb4f30, file "/tmp/build/tmpg_2pIX/out00-PYZ.pyz/encodings.aliases", line 17>
Traceback (most recent call last):...

我环顾四周,发现编码.别名与内置的python库有关。我使用的是python2.7.6和pyinstaller2.1;根据它们的文档,它们应该是兼容的。我在一个基于云的IDE(c9)中工作,但这似乎不是问题所在,因为这是一个python问题,而不是OS问题。在

我被难住了。有什么帮助吗?在


Tags: 项目in脚本mostobject错误linetmp
1条回答
网友
1楼 · 发布于 2024-06-08 08:49:09

问题是包名冲突。在我的项目中有一个名为“codecs”的包。当PyInstaller处理python标准库钩子时,我项目的名称空间超过了python标准库的名称空间编码.别名模块导入我的项目的“编解码器”模块而不是编码模块。在

相关问题 更多 >