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 捆绑后,Flask 应用程序应请求挂起
如何使用 cx_Freeze 冻结双模式(GUI 和控制台)应用程序?