Основы:
- У меня есть проект 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...
-
На удаленном сервере я поместил соответствующий вызов в pycharm-debug.egg в
__init__.py
(но я тоже попытался поместить его в другие места в коде). -
Я запускаю удаленный сервер, как этот
python manage.py runserver <remote domain name>:8000
а на локальном IDE/отладчике pycharm я вижу:"Connected to pydev debugger (build 133.1347)"
-
После этого вещи просто сидят там... Я не получаю никакой обратной связи о том, где выполняется, и нет возможности в IDE pycharm "запускать/продолжать/запускать" что угодно.
-
На удаленном сервере, если я
<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", поэтому я ожидал, что это начнется. Когда я пытаюсь открыть страницу на удаленном сервере, я получаю "не подключен", поэтому веб-сервер, очевидно, еще не работает (если 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)
-
Локальная среда 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 за обычным маршрутизатором кабельного модема Comcast с переадресацией портов для подключения порта 4000 (и протестировал это с помощью сервера узлов, подключенного к порту 4000, который отлично работал, когда я сделал wget против него с моего удаленного сервера).
Я в недоумении о том, как "поднять" что угодно, чтобы заставить все работать и позволить мне начать отладку.
Спасибо, что пытались помочь.