如何使用pydev在eclipse中添加断点?

时间:2012-03-24 20:29:57

标签: python eclipse debugging cygwin pydev

我想在pydev项目中添加一个断点。我正在使用带有pydev插件的eclipse。我正在运行Windows 7.我要调试的文件位于C:\ cygwin \ workspace \ project \ main.py。

当我尝试通过双击我想要断点的行的左侧来添加断点时,断点似乎在视觉上出现在文件中,但是当我单击debug时出现此错误:< / p>

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

请注意,在调试和正常运行模式下,该文件仍然可以正常运行。我也可以通过运行python main.py来运行ide之外的文件。

3 个答案:

答案 0 :(得分:4)

我实际上能够让这个工作。我意识到我正在使用PyCharm,但解决方案应该很容易适应,因为他们都使用PyDev。基本问题是IDE期待Windows路径,而PyDev期待cygwin路径。我找到了PyDev中适当的地方进行这些转换。

这是我的设置

  • 将您的项目配置为使用python for cygwin binary(这可能没有必要)
  • 编辑程序文件/ JetBrains / PyCharm 2.5 / helpers / pydev / pydevd.py。这会将发送到调试器的路径转换为cygwin路径。在file = NormFileToServer(file)所在的第597行附近进行以下更改

                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语句

  • 下进行相同的文件名转换
  • 编辑程序文件/ 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运行/调试配置的环境变量中添加PYCHARM_DEBUG=True

希望这可以节省其他人6个小时的时间来解决这个问题!

答案 1 :(得分:1)

PyDev中没有真正支持Cygwin,因此,您必须使用python Windows发行版在Windows上工作,或者您必须使用python for Linux在Linux上工作...

真正的问题是,当在cygwin内部(与IDE进行通信)时,必须在每一步来回转换路径......在这方面已经完成了一些初步工作,但它没有做到。继续......

我没有真正尝试过的一种方法但是可以工作的方法可能是尝试在cygwin中使用all(即:使用在cygwin中运行的PyDev:java版本的java / eclipse / pydev - 不仅仅是python翻译,这样两者都会以相同的方式看到路径),但我还没有真正测试过这种设置,所以,我并不是100%肯定它会工作。

答案 2 :(得分:0)

pydev调试器:警告:尝试将断点添加到不存在的文件:/ vagrant / pytest / C:\ Program Files \ Git \ vagrant \ vagrant \ pytest \ remote.py(将无效)

以上错误一直在发生。我正在使用安装了pydev的eclipse。

INitiualy我错误地配置了PATHS_FROM_ECLIPSE_TO_PYTHON值,但后来更新了它。但更新后的值并未反映在上述错误中,而只显示旧值。

如何刷新旧配置PATHS_FROM_ECLIPSE_TO_PYTHON并在执行文件时使用最新值