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#的主要内容,如果未能解决你的问题,请参考以下文章