python-3.x - 为Python 3和PyQt构建可执行文件

标签 python-3.x pyqt4 py2exe pyinstaller

我使用PyQt4在Python 3.1中构建了一个相当简单的应用程序。完成后,我希望将应用程序分发到未安装任何计算机的计算机。

我几乎只关心Windows平台,所以我的目标是最后拥有一个可执行文件,也许还有一些资源文件和.dll。

经过搜索,我得出的结论是

  • py2exe 仅支持2.7版以下的Python
  • pyinstaller 仅支持2.6版以下的Python
  • cx_Freeze 对我不起作用,因为在尝试执行成功构建的二进制文件时,我不断遇到以下错误:
  • 
    Y:\Users\lulz\build\exe.win32-3.1>system_shutdown.exe
    Traceback (most recent call last):
    File "Y:\Program Files (x86)\Python\lib\site-packages\cx_Freeze\initscripts\Console3.py", line 27, in exec(code, m.__dict__)
    File "Y:/Users/lulz/Documents/Coding/Python3/projects/System Shutdown/system_shutdown.pyw", line 5, in from PyQt4 import QtCore
    File "ExtensionLoader_PyQt4_QtCore.py", line 16, in AttributeError: 'NoneType' object has no attribute 'modules'

    所以我的问题基本上是这里的两个问题:
  • 除了cx_Freeze以外,还有其他方法可以用我的配置生成二进制文件吗?
  • 如果不是,那么cx_Freeze问题可能是什么?

  • 如果需要,我可以提供有关第二个问题的更多信息,例如我对cx_Freeze的调用,我的distutils安装脚本等。

    已经感谢您的帮助和评论。

    最佳答案

    您可以通过在cx_Freeze软件包中将一行代码附加到freeze.py来解决此问题。

    它在这里描述:
    http://www.mail-archive.com/cx-freeze-users@lists.sourceforge.net/msg00212.html

    至少对我有用:)

    干杯,
    阿尔玛

    关于python-3.x - 为Python 3和PyQt构建可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1737375/

    相关文章:

    django - djoser 通过链接激活帐户

    python - 从任务栏隐藏 PyQt 应用程序

    python - 在 PyQt 中动态添加和删除小部件

    python - 在 Python Qt 的组合框中逐行嵌入文件

    python - Py2exe lxml 问题

    python - 是否可以在 Vista 上构建 exe 并使用 py2exe 在 XP 上部署

    python - 将cx_Oracle部署到各种版本的Oracle客户端上

    python - 在所有子目录中运行 nosetests

    python-3.x - 比较和排序 DataFrame 两列中的值并在 python 中的同一行中排序

    python - 如果值匹配,则将一个字典数组中的特定值合并到另一个字典数组中