【问题标题】:Attaching CGI python script to PyCharm debugger?将 CGI python 脚本附加到 PyCharm 调试器?
【发布时间】:2015-08-31 15:58:29
【问题描述】:

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

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

有什么想法吗?谢谢!

【问题讨论】:

    标签: python debugging cgi pycharm cgihttpserver


    【解决方案1】:

    AFAIK,您只需将其放入您的脚本中

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

    它正在自行调试。

    【讨论】:

    • 不完全是。这将转储上下文,但我想要的是中断代码然后逐行跳转。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2015-06-29
      • 1970-01-01
      • 2011-06-30
      • 1970-01-01
      • 1970-01-01
      • 2018-05-12
      • 2013-11-20
      • 2012-05-01
      • 2020-06-29
      相关资源
      最近更新 更多