Py2App - PyQt5 使用错误的 port_v#

Posted

技术标签:

【中文标题】Py2App - PyQt5 使用错误的 port_v#【英文标题】:Py2App - PyQt5 using wrong port_v# 【发布时间】:2017-07-18 00:33:24 【问题描述】:

我正在构建一个使用 PyQT5 制作的简单 GUI,并且在使用 py2app 进行开发构建期间一切正常。当我去构建 .app 文件时,我在 PyQt5 代码中遇到了崩溃:

  File "/usr/local/lib/python2.7/site-packages/PyQt5/uic/port_v3/ascii_upper.py", line 24, in <module>
_ascii_trans_table = bytes.maketrans(b'abcdefghijklmnopqrstuvwxyz',
AttributeError: type object 'str' has no attribute 'maketrans'

我已经将此追溯到似乎是 PyQt5 试图从 port_v3 模块运行 python 3 代码,但是我在 2.7 中做所有事情,我无法弄清楚为什么它试图加载 Python 3开始构建应用程序的 PyQt 部分。任何想法如何追踪这个或解决方法?

【问题讨论】:

【参考方案1】:

在四处挖掘并观察 py2app 耗时之后,似乎试图将我机器上安装的每个模块打包成一个简单的应用程序,我完全放弃了 py2app。我改为使用 pyinstaller,它就像一个魅力。快速构建,一切正常,适用于 python 2.7.13 和 PyQt5 的所有依赖项。

我知道这不是我关于 py2app 的原始问题的解决方案,但仍然解决了尝试捆绑 .app 文件的原始问题,因此任何其他有 py2app 问题的人,我建议尝试 pyinstaller。

【讨论】:

请查看Can I answer my own question? 并在两天后回来查看答案。

以上是关于Py2App - PyQt5 使用错误的 port_v#的主要内容,如果未能解决你的问题,请参考以下文章

使用 Py2app 时出现导入错误

Py2App 错误——功能未实现

PyQt5配合Qt-Designer实现GUI

ABC 类在 Py2app 应用程序和系统库中都实现了。将使用两者之一

Esky 不包括子模块

pyqt5_站点管理_WaterClient_1