使用WingIDE调试Python瓶子应用程序

2024-06-06 03:14:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个pythonbottle应用程序(python2.7.2和bottle0.10.9),并在wingede(3.2.8-1)Professional for Linux中进行开发。这一切都很好,除非我想调试瓶子应用程序。我让它在wingede中以独立模式运行,但它不会在代码中的任何断点处停止,即使我设置了瓶子.调试(错误)。有人有什么建议/想法,我可以设置瓶子,使它停止在WingIDE内的断点?在


Tags: 代码应用程序瓶子forlinux错误模式建议
2条回答

你在WSGI下调试使用wingdbstub.py或者从IDE发射瓶子?我对bottle不是很熟悉,但一个常见的问题是web框架的重新加载机制在一个子进程中运行代码,而这个子进程没有经过调试。不过,我不确定bottle在WSGI下是否能做到这一点,但是在导入wingdbstub(或者从IDE启动时启动)时打印进程id,然后在断点丢失的行上打印进程id,这将排除在外。瓶子的“重新装载器”参数。这里可能有关联。如果设置为True,则在Wing下调试时尝试将其设置为False。

另一个尝试是故意引发一个断点在哪里的异常(比如“assert 0,'test exception'”),看看这个异常是否在Wing的异常工具的调试器中报告,如果是,Wing是否也设法打开了源代码。如果bottle以一种无法找到源代码的方式运行代码,那么它仍然会在断言上停止(Wing的调试器默认情况下停止在所有断言上,即使宿主代码处理异常),但是它将无法显示调试文件,并在状态区域(在IDE的瓶子处)显示一条消息屏幕和消息工具中),指示调试进程指定的文件名。根据这一点,可能会解决问题(但如果文件名类似于“”,则需要修改瓶子)。

顺便说一句,插入只在Wing的调试器下运行的代码,如下所示:

导入操作系统 如果“WINGDB_ACTIVE”进入操作系统环境: #代码在这里

如果这没有帮助,请发送电子邮件到wingware.com支持。

如果将重新加载程序设置为真瓶子,则为实际应用程序启动子进程。在机翼上你需要关掉重装机,这样它就可以工作了。

run(reloader=False).  

但每次更改时,都必须重新启动wing应用程序。

相关问题 更多 >