【发布时间】:2014-07-14 02:57:40
【问题描述】:
基础知识:
- 我有一个运行良好的 django 项目(本地和远程服务器上)。
-
我使用“远程调试”配置文件在本地启动 pycharm,它看起来不错。
Starting debug server at port 4000 Use the following code to connect to the debugger: import pydevd pydevd.settrace('<my local machines public ip addr>', port=4000, suspend=False) Waiting for connection... -
在远程服务器上,我在
李>__init__.py中对pycharm-debug.egg 进行了适当的调用(但我也尝试将它放在代码中的其他位置)。 -
我像这样
python manage.py runserver <remote domain name>:8000启动远程服务器并在本地 pycharm IDE/调试器上看到:"Connected to pydev debugger (build 133.1347)" -
在此之后,事情就在那里......我没有得到任何关于执行位置的反馈,并且 pycharm IDE 中无法“启动/继续/运行”任何东西。
李> -
如果我在远程服务器上
<ctrl-c>它,我看到了:File "/<path here>/pycharm-debug.egg/pydevd.py", line 1256, in settrace File "/<path here>/pycharm-debug.egg/pydevd.py", line 1305, in _locked_settrace
我的猜测是一切都已正确连接,但我没有看到启动一切运行的方法。我有“suspend=False”,所以我预计它会启动。当我尝试针对远程服务器调出一个页面时,我得到“未连接”,因此 Web 服务器显然还没有运行(如果curl http://<remote server domain>:8000 我得到curl: (7) Failed connect to <remote server domain>:8000; Connection refused)。如果没有远程调试,这可以在我的本地开发机器或远程服务器上正常运行。
我做错了什么? :) 谢谢!
详情:
-
在运行代码/进程的远程服务器上,我想在 main
__init__.py中调试:import os import sys BASE_DIR = os.path.dirname(os.path.dirname(__file__)) sys.path.append(BASE_DIR + '/pycharm-debug.egg') import pydevd pydevd.settrace('<my local machines public ip addr>', port=4000, suspend=False) -
本地 pycharm IDE 显示如下:
Starting debug server at port 4000 Use the following code to connect to the debugger: import pydevd pydevd.settrace('localhost', port=4000, suspend=False) (tried with <public ip addr> for this, too. Waiting for connection... ---- and then, after I start the remote server process: ---- Connected to pydev debugger (build 133.1347)
其他说明:
- 我在远程服务器上使用和不使用 virtualenv 都试过了。
- 我在普通 Comcast 有线调制解调器路由器后面运行本地 pycharm IDE,并打开了端口 4000 的端口转发(并使用连接到端口 4000 的节点服务器对此进行了测试,当我从我的远程服务器)。
我不知道如何“碰撞”任何东西以使事情运行并让我开始调试。
感谢您的帮助。
【问题讨论】:
-
有时,pycharm 只需要重启...真的。
-
嘿,是的……也试过几次。 :)
-
您是否也删除了
suspend=False?明确表示不要设置断点(检查我的答案) -
我无法在远程服务器上明确使用 pydevd 解决这个问题。相反,我改变了方向并通过 SSH 隧道使用远程调试,结果工作正常(相当宽慰)。
-
您的 python_remote_debug 配置可能有问题。
标签: python django remote-debugging