cx_freeze - 如何调试应用程序

Posted

技术标签:

【中文标题】cx_freeze - 如何调试应用程序【英文标题】:cx_freeze - how debug app 【发布时间】:2013-08-08 06:50:56 【问题描述】:

我有一个小的 Python3 应用程序来操作一些特定的 XML 文件。对于 gui,我使用 PySide 并用于解析文件 -lxml。

我在使用 cx_freeze 冻结它时遇到了一些麻烦,但最终成功了。现在 - 应用程序的某些部分根本无法工作......没有错误消息和没有创建日志。 例如,在 LineEdit 中的 Enter 按下信号 - 应该显示新对话框......但没有任何反应。

我在标准 python 文件中有相同的版本,并且运行正常。如何调试冻结的应用程序?

【问题讨论】:

带有magick的模块必须作为完整模块包含在feeze中。 packages 贬义词。 我想我不明白...什么魔法?在包中我有 lxml 和我自己的模块以防万一。 cxfreeze 无法检测导入使用 getattr 或 eval 等技术进行,因此请尝试在 packages 指令中列出 pyside 和 lxml 您是如何使用 python 3+、cx_Freeze for windows 构建 GUI .exe 文件的?我正在与 cx_Freeze 战斗,但没有成功:当我执行我的 .exe 文件时,没有任何反应,没有错误消息,没有警告,没有打开窗口,什么都没有……我已经设置了 base='Win32GUI' 和包含 【参考方案1】:

对我有用的一种方法是实现一些标准的 Python 日志记录(参见例如here)。通过定期记录一些 DEBUG 消息,您可以了解问题发生的位置。如果代码的某些特定部分似乎不起作用,请将它们包装在 try/except 块中并记录异常:然后日志将为您提供确切的错误消息。

【讨论】:

我认为这是唯一可以帮助我的事情【参考方案2】:

查看 pyside 文档,看看是否有重定向输出到窗口选项 - 完全有可能是某些东西导致了错误,而该错误被打印到无处。

【讨论】:

以上是关于cx_freeze - 如何调试应用程序的主要内容,如果未能解决你的问题,请参考以下文章

cx_freeze 调试控制台?

与 cx_freeze 捆绑后,Flask 应用程序应请求挂起

如何使用 cx_Freeze 冻结双模式(GUI 和控制台)应用程序?

如何禁用 cx_freeze 以自动检测所有模块

如何解决 cx_freeze 错误:_ 和_ 是同一个文件?

使用 cx_freeze 时如何加载泡菜模型?