我正在使用Community Edition PyCharm 4.5.1并且正在开发CGI python脚本。我的需求是启动调试器并在我的HTTP客户端调用脚本后附加脚本(然后中断到第一个断点)。
我希望,我不知道自己是否可以。一切正常,从Python服务器到调用我的CGI脚本的HTML / JavaScript代码。此外,我完全能够调试Python脚本,我只是正常启动。但现在问题是HTTP服务器启动脚本,既不是我(从命令行)也不是调试器本身。
有什么想法吗?谢谢!
答案 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)