我想在 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
请注意,该文件在调试和正常运行模式下仍然运行良好。我还可以通过运行 python main.py
在 ide 之外运行该文件。
最佳答案
我实际上能够让它工作。我意识到我正在使用 PyCharm,但解决方案应该很容易适应,因为它们都使用 PyDev。基本问题是 IDE 需要 windows 路径,而 PyDev 需要 cygwin 路径。我在 PyDev 中找到了进行这些转换的合适位置。
这是我的设置
- 将您的项目配置为对 cygwin 二进制文件使用 python(这可能不是必需的)
编辑 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
语句下执行相同的文件名转换几行编辑 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 运行/调试配置的环境变量中添加 PYCHARM_DEBUG=True
。
希望这可以为其他人节省我花 6 个小时来解决这个问题!
关于python - 如何使用 pydev 在 eclipse 中添加断点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9855319/