Как добавить точку останова в затмении с помощью pydev? - PullRequest
2 голосов
/ 25 марта 2012

Я хотел бы добавить точку останова в проект pydev.Я использую Eclipse с плагином Pydev.Я использую Windows 7. Файл, который я хочу отладить, находится по адресу C: \ cygwin \ workspace \ project \ main.py.

Когда я пытаюсь добавить точку останова, дважды щелкнув слева отВ строке, в которой я хочу установить точку останова, точка останова, по-видимому, визуально присутствует в файле, но затем я получаю эту ошибку, когда нажимаю отладку:

pydev debugger: warning: trying to add breakpoint to file that does not exist: /workspace/project/C:\cygwin\workspace\project\main.py

Обратите внимание, что файл по-прежнему нормально работает как врежимы отладки и нормального запуска.Я также могу запустить файл за пределами ide, запустив python main.py.

Ответы [ 3 ]

4 голосов
/ 12 июня 2012

Я действительно смог заставить это работать. Я понимаю, что использую PyCharm, но решение должно быть легко адаптировано, поскольку они оба используют PyDev. Основная проблема заключается в том, что IDE ожидает пути Windows, в то время как PyDev ожидает пути Cygwin. Я нашел подходящие места в PyDev для этих преобразований.

Вот мои настройки

  • настроить ваш проект на использование Python для бинарного файла cygwin (в этом нет необходимости)
  • edit Program Files / JetBrains / PyCharm 2.5 / helpers / pydev / pydevd.py. Это преобразует пути, отправленные в отладчик, в пути cygwin. Вокруг линии 597, где находится file = NormFileToServer(file), внесите следующие изменения

                orig_file = file
                file = NormFileToServer(file)
    
                if not os.path.exists(file):
    
                    file = orig_file.replace('c:/cygwin','')
                    file = file.replace('\\','/')
                    file = file.replace(' ','\ ')
                    file = NormFileToServer(file)
    
                    if not os.path.exists(file):
                        sys.stderr.write('pydev debugger: warning: trying to add breakpoint'\
                            ' to file that does not exist: %s (will have no effect)\n' % (file,))
                        sys.stderr.flush()
    

    сделать то же самое преобразование имени файла несколькими строками позже под оператором elif cmd_id == CMD_REMOVE_BREAK

  • edit Program Files / JetBrains / PyCharm 2.5 / helpers / pydev / pydevd_comm.py. Это преобразует пути, отправленные обратно в Pycharm, в пути Windows. Вокруг строки 549 измените код так, чтобы он выглядел так:

                myFile = pydevd_file_utils.NormFileToClient(curFrame.f_code.co_filename)
                myFile = "C:\cygwin" + myFile
                myFile = myFile.replace('/','\\')
    

Отрегулируйте пути по мере необходимости. Важным моментом, который помог мне понять это, было добавление PYCHARM_DEBUG=True в переменные окружения конфигураций запуска / отладки PyCharm.

Надеюсь, это спасет кого-то еще за 6 часов, которые я потратил на выяснение этого!

1 голос
/ 27 марта 2012

Cygwin на самом деле не поддерживается должным образом в PyDev, поэтому вы должны либо работать с окнами с помощью дистрибутива Python для Windows, либо вы должны работать с Linux, используя Python для Linux ...

Реальная проблема заключается в том, что пути должны переводиться взад и вперед на каждом шаге внутри Cygwin (для установления связи с IDE) ... на этом фронте была проделана некоторая начальная работа, но она не пошла вперед ...

Один из подходов, который я на самом деле не пробовал, но который мог бы сработать, это пытаться использовать все в cygwin (то есть: использовать PyDev, работающий и внутри cygwin: версия java / eclipse / pydev для Linux - не только интерпретатор python, таким образом, оба будут видеть пути одинаково), но я на самом деле не тестировал эту настройку, поэтому я не уверен на 100%, что она будет работать.

0 голосов
/ 19 августа 2016

pydev отладчик: предупреждение: попытка добавить точку останова в файл, который не существует: / vagrant / pytest / C: \ Program Files \ Git \ vagrant \ vagrant \ pytest \ remote.py (не будет иметь эффекта)

Вышеупомянутая ошибка продолжает происходить со мной. Я использую затмение с установленным pydev.

INitiualy Я неправильно настроил значение PATHS_FROM_ECLIPSE_TO_PYTHON, но затем обновил его. Но обновленное значение не отражено в вышеуказанной ошибке, а показывает только старое значение.

Как очистить старую конфигурацию PATHS_FROM_ECLIPSE_TO_PYTHON и установить последнее значение, используемое при выполнении файла

...