基础知识:
我使用“远程调试”配置文件在本地启动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...
在远程服务器上,我将对pycharm-debug.egg的适当调用放在__init__.py
中(但我也尝试将其放在代码的其他位置)。
我像这样启动远程服务器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
)。如果不进行远程调试,在本地开发人员计算机上或远程服务器上运行都可以。
我做错什么了?:)谢谢!
详细信息:
在运行要在主__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)
其他说明:
我不知道如何“碰撞”任何东西来运行并让我开始调试。
谢谢你帮忙。
对于未来的谷歌用户。。。我可以让远程调试工作,但不是通过这种方法。我刚刚在pycharm论坛上回答了一个类似的问题,所以我想我会用对我有用的方法来更新这个问题。
/usr/local/bin/python
)。/home/<username>/.pycharm_helpers
-我不记得这是不是自动创建的)。转到“运行/编辑配置…”并添加“Django服务器”(对话框左上角的加号)。
DJANGO_SETTINGS_MODULE = <app>/settings.py
)。出于我的目的,我还需要设置HTTPS=1
。/home/<username>/<xyz>/<appdir>
)。设置从本地目录到远程目录的路径映射(即
/Users/JohnQ/<xyz>/<appdir>=/home/<username>/<xyz>/<appdir>
)。因为我需要其他第三方服务器(如FB等)才能使用HTTPS访问此服务器,所以我在远程服务器上使用了“stunnel”–这很容易设置)。
除此之外,还可以设置部署确认,以便右键单击以上载文件的较新版本(在“工具/部署/配置…”下)。
/
”。创建之后,您应该可以右键单击任何文件/目录并选择“上载到…”。注意,对于初始上载,我只是将tar.gz压缩到服务器上以节省时间,并且我只通过部署配置上载调试期间所做的更改。我已经很高兴地用它进行了~4个月的远程调试,所以它工作得很好。
对我来说,删除
suspend=False
参数就做到了。文件上写着
@param suspend: whether a breakpoint should be emulated as soon as this function is called.
。如果你让它在那里,它是连接的,但不考虑断点。然后基本上应该使用另一个
pydevd.settrace('ip.addr')
->;注意不要suspend
我有同样的症状,并通过关闭视图断点窗口中的所有Python异常断点来“修复”它。
相关问题 更多 >
编程相关推荐