3

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

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

任何想法?谢谢!

4

2 回答 2

0

AFAIK,你只是把你的脚本

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

它正在自行调试。

于 2015-06-16T01:46:14.673 回答
0

我在 CentOS 上使用 pycharm 时遇到了和你一样的问题,但是我发现 pycharm 可以在 windows 上自动附加到 cgi 脚本,所以我尝试遵循 CGIRequestHandler 的源代码,我发现 CGIRequestHandler.run_cgi( ) 函数,它将在linux上使用fork,在windows上使用子进程,所以我猜可能是这两种不同的创建子进程的方式导致不同的结果。所以我尝试下面的代码,在linux上强制它子进程,它可以工作!

    CGIHTTPRequestHandler.have_fork = 0
    httpd = HTTPServer(('', port), CGIHTTPRequestHandler)        
于 2016-03-12T02:46:47.313 回答