首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cx_freeze pyqt4示例(“\pyqt4\PyQt4 4”)不起作用

cx_freeze pyqt4示例(“\pyqt4\PyQt4 4”)不起作用
EN

Stack Overflow用户
提问于 2013-04-21 13:35:11
回答 1查看 5.2K关注 0票数 4

我的系统:

Windows 7,x64,Python3.3.1,PyQt4 4.10使用安装程序(py3.3-Qt5.0.1-x64),cx_freeze 4.3.1 (win-amd64 64-py3.3)

起作用的是:

  • 在终端中导航到..python33\lib\site-packages\cx_freeze\samples文件夹(以及相应的示例文件夹)并执行python setup.py build
  • 它适用于:\simple\tkinter (只是为了确保我没有在其他地方出错)

问题:

  • 但是我的目标是获得我的PyQt4-Project的一个可执行文件/包,所以我尝试使用\PyQt4示例(顺便说一句)。PyQt4app.py作为python应用程序运行得很好)
  • \PyQt4 >>> python setup.py build最初无法工作:运行生成的PyQt4app.exe会导致错误,请求缺少的包"re“
  • 随后,我将"re“包含在setup.py文件中。(options = {"build_exe" : {"includes" : ["atexit", "re"]}})
  • 现在它生成一个.exe而不抛出一个错误--但是运行这个.exe不会做任何事情,只是沉默.
  • cx_freeze似乎找到了正确的依赖关系:python33.dllQt5Core.dllQt5Gui.dllPyQt4.QtCore.pydPyQt4.QtGui.pyd (包括: sip、独角兽数据等等)。

在这里,setup.py (未更改,除"re“包括&注释已删除)

代码语言:javascript
复制
import sys

from cx_Freeze import setup, Executable

base = None
if sys.platform == "win32":
    base = "Win32GUI"

setup(
        name = "simple_PyQt4",
        version = "0.1",
        description = "Sample cx_Freeze PyQt4 script",
        options = {"build_exe" : {"includes" : ["atexit", "re"]}},
        executables = [Executable("PyQt4app.py", base = base)])

我哪里出问题了有什么建议吗?哪些补充信息将是有用的?

  • 顺便说一下。- docs.python.org/3/faq链接到 py2exe -但是py2exe不适用于Python3.x !?

编辑:I通过设置base = None并通过批处理文件运行.exe来获得控制台输出。输出是:Failed to load platform plugin "windows". Available platforms are: (输出结束-没有列表或任何内容)。

那么在哪里以及如何加载这个插件呢?

EN

回答 1

Stack Overflow用户

发布于 2013-04-21 15:25:11

好吧-我找到了一个解决办法:

qwindows.dll及其文件夹\platforms\qwindow.dll..\python33\lib\site-packages\PyQt4\plugins复制到.exe所在的文件夹中。现在起作用了。

编辑:

我的setup.py现在看起来像这样,并且似乎也适用于其他情况:

代码语言:javascript
复制
import sys

from cx_Freeze import setup, Executable

base = "Win32GUI"
path_platforms = ( "..\..\..\PyQt4\plugins\platforms\qwindows.dll", "platforms\qwindows.dll" )
build_options = {"includes" : [ "re", "atexit" ], "include_files" : [ path_platforms ]}

setup(
    name = "simple_PyQt4",
    version = "0.1",
    description = "Sample cx_Freeze PyQt4 script",
    options = {"build_exe" : build_options},
    executables = [Executable("PyQt4app.py", base = base)]
    )
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16131684

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档