我应该如何解决使用 py2exe 产生的属性和导入错误?

Posted

技术标签:

【中文标题】我应该如何解决使用 py2exe 产生的属性和导入错误?【英文标题】:How should I solve Attribute and Import errors generated on using py2exe? 【发布时间】:2014-12-04 21:38:02 【问题描述】:

我使用 py2exe 创建了一个 exe 文件,但是它在执行时给了我一个属性错误和一个导入错误。我在主脚本 abc.py 中使用了 urllib2 和 BeautifulSoup

这是我的 setup.py:

from distutils.core import setup
import py2exe
setup(console=['abc.py'])
options="py2exe": 'includes': ["BeautifulSoup"]

在参考本网站上的另一个问题后,我添加了“包含”参数。然而,它对我不起作用。

我从 abc.exe 得到的输出是

C:\Users\Dhruv Mullick\Desktop\dist>abc.exe Traceback(最近 最后调用):文件 “C:\Python27\lib\site-packages\py2exe\boot_common.py”,第 92 行,在 导入 linecache 文件“linecache.pyc”,第 9 行,文件“os.pyc”,第 398 行,文件“UserDict.pyc”,第 83 行, 在文件“_abcoll.pyc”中,第 11 行,在文件中 “abc.pyc”,第 3 行,在文件“bs4__init__.pyc”,第 30 行,在 文件中的文件“bs4\builder__init__.pyc”,第 1 行 “collections.pyc”,第 6 行,在 AttributeError: 'module' 对象中 没有属性 'all' Traceback(最近一次调用最后):文件 “abc.py”,第 3 行,在文件“bs4__init__.pyc”,第 26 行,在 文件“userDict.pyc”中的文件“os.pyc”,第 398 行, 第 83 行,在文件“_abcoll.pyc”中,第 11 行,在文件中 “abc.pyc”,第 3 行,在 ImportError 中:无法导入名称 美丽汤

C:\Users\Dhruv Mullick\Desktop\dist>

【问题讨论】:

【参考方案1】:

您的脚本“abc.py”与 Python 标准库中的 abc 模块冲突。 将脚本重命名为其他名称(可能是 abc_app.py),调整 setup-script 并重新构建。

您还应该确保删除您可能拥有的任何“abc.pyc”或“abc.pyo”文件。并删除 py2exe 创建的“构建”目录...

【讨论】:

以上是关于我应该如何解决使用 py2exe 产生的属性和导入错误?的主要内容,如果未能解决你的问题,请参考以下文章

使用 py2exe 模块将 .py 转换为 .exe

py2exe 无法从 Six.py 导入

如何对使用 py2exe 生成的二进制文件进行数字签名?

如何使用 py2exe 和 esky 冻结 Celery?

当我拥有它们时,Py2exe 抱怨缺少 dll?

如何仅从 JSON 文件导入不和谐?