Netbeans 6.9.1中的Python3项目调试

Netbeans 6.9.1中的Python3项目调试,netbeans,python-3.x,Netbeans,Python 3.x,这应该是一个相当普遍的问题,但谷歌和stackoverlow搜索都没有帮助我解决这个问题 我想在Netbeans 6.9.1中开发Python3程序。但当我创建项目时,切换断点并按下调试按钮,我会看到以下输出: [LOG]PythonDebugger : overall Starting [LOG]PythonDebugger.taskStarted : I am Starting a new Debugging Session ... [LOG]This window is an intera

这应该是一个相当普遍的问题,但谷歌和stackoverlow搜索都没有帮助我解决这个问题
我想在Netbeans 6.9.1中开发Python3程序。但当我创建项目时,切换断点并按下调试按钮,我会看到以下输出:

[LOG]PythonDebugger : overall Starting
[LOG]PythonDebugger.taskStarted : I am Starting a new Debugging Session ...
[LOG]This window is an interactive debugging context aware Python Shell 
[LOG]where you can enter python console commands while debugging 
>>>  File "/home/proger/.netbeans/6.9/config/nbPython/debug/nbpythondebug/jpydaemon.py", line 219
    print self.debuggerFName
             ^
SyntaxError: invalid syntax
Debug session Abort =1
>>>
在日志窗口下方,我看到:

ERROR::Server Socket listen for debuggee has timed out(more than 20 seconds wait) java.net.SocketTimeoutException: Accept timed out

所以,如果我理解正确的话,Netbeans会尝试使用Jython2.something调试器调试Python3代码。有没有办法附加正确的调试器?

我不知道Netbeans是如何工作的,但从错误消息来看,Python 3解释器似乎收到了Python 2代码。我敢说Netbeans通过断点挂钩将调试服务器挂钩到Python中,因此当到达断点时,它会启动调试服务器,然后Netbeans IDE会尝试与之对话

这个debugserver(jpydaemon.py)显然还没有移植到Python3,至少在您的版本中没有

我怀疑Jython在执行什么。本例中的代码似乎是为Jython编写的,因为它被称为jpydaemon.py,而且在任何情况下,Jython都不支持Python 3语法,因此如果您试图开发Python 3代码并使用Jython运行它,您很可能会失败。:-)


更新:在查看了jpydaemon.py之后,我得出结论,我的猜测完全正确。jpydaemon包含调试器服务,它通过sys.settrace()连接到调试挂钩中。因此,您遇到的问题非常简单:jpydaemon.py尚未移植到Python 3,因此您无法使用Netbeans内部调试器调试Python 3代码。

我在使用Netbeans时遇到了相同的问题。我通过编辑
jpydaemon.py
更改219行的代码

print self.debuggerFName 
==>
print(self.debuggerFName)
重新启动NetBeans,它就会工作