将CGI python脚本附加到PyCharm调试器?

时间:2015-06-16 01:03:46

标签: python debugging cgi pycharm cgihttpserver

我正在使用Community Edition PyCharm 4.5.1并且正在开发CGI python脚本。我的需求是启动调试器并在我的HTTP客户端调用脚本后附加脚本(然后中断到第一个断点)。

我希望,我不知道自己是否可以。一切正常,从Python服务器到调用我的CGI脚本的HTML / JavaScript代码。此外,我完全能够调试Python脚本,我只是正常启动。但现在问题是HTTP服务器启动脚本,既不是我(从命令行)也不是调试器本身。

有什么想法吗?谢谢!

2 个答案:

答案 0 :(得分:0)

AFAIK,你刚刚加入你的剧本

import cgitb    
cgitb.enable()  
print "Content-type: text/html\n\n"

它正在自行调试。

答案 1 :(得分:0)

当我在CentOS上使用pycharm时,我遇到了与你相同的问题,但是我发现pycharm可以自动附加到cgi脚本在windows上,所以我尝试按照CGIRequestHandler的源代码,我发现CGIRequestHandler.run_cgi()函数有区别,它会在linux上使用fork,而在windows上使用子进程,所以我猜这两种不同的创建子进程的方式可能导致不同的结果。所以我尝试下面的代码,强制它在linux上进行子进程,它的工作原理!

    CGIHTTPRequestHandler.have_fork = 0
    httpd = HTTPServer(('', port), CGIHTTPRequestHandler)