Отладка проекта Python3 в Netbeans 6.9.1 - PullRequest
3 голосов
/ 30 января 2011

Это должно быть довольно популярной проблемой, но ни Google, ни поиск в stackoverlow не помогли мне с этим.
Я хочу разрабатывать программы на Python3 в Netbeans 6.9.1.Но когда я создаю проект, переключаю точку останова и нажимаю на кнопку отладки, я вижу следующий вывод:

[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 пытается отладить код Python3 с помощью отладчика Jython2.something.Есть ли способ подключить правильный отладчик?

Ответы [ 2 ]

3 голосов
/ 07 сентября 2011

Я столкнулся с той же проблемой при использовании NetBeans.Я решил эту проблему, отредактировав jpydaemon.py изменить код около 219 строки

print self.debuggerFName 
==>
print(self.debuggerFName)

Перезапустите NetBeans, и он работает.

2 голосов
/ 30 января 2011

Я не знаю, как работает Netbeans, но из сообщения об ошибке похоже, что интерпретатор Python 3 получает код Python 2. Я бы рискнул, что Netbeans подключает отладочный сервер к Python через перехват точки останова, поэтому, когда достигается точка останова, он запускает сервер отладки, с которым затем интегрируется среда IDE netbeans.

Этот отладочный сервер (jpydaemon.py), очевидно, не был портирован на Python 3, по крайней мере, в вашей версии.

Я сомневаюсь, что что-то выполняется Jython. Код в этом случае, кажется, написан для Jython, так как он называется jpydaemon.py, и в любом случае Jython пока не поддерживает синтаксис Python 3, поэтому, если вы пытаетесь разработать код Python 3 и запустить его с Jython, вы скорее всего потерпит неудачу. :-)

Обновление: после просмотра jpydaemon.py я пришел к выводу, что я угадал точно. jpydaemon содержит службу отладчика, которая подключается к обработчикам отладки через sys.settrace (). Итак, проблема, с которой вы столкнулись, довольно проста: jpydaemon.py еще не перенесен на Python 3, поэтому вы не можете использовать внутренний отладчик Netbeans для отладки кода Python 3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...