ОК, я сам нашел ответ. Я думал, что проблема связана с настройками отображения пути, но теперь выясняется, что она связана с тем, как вызывается код python.
pydevd
, который связывается с удаленной службой отладки PyCharm, работающей в Windows, должен знать, что такое весь скрипт python, чтобы он мог передавать эту информацию в PyCharm, чтобы найти источник и соответствующие точки останова. В настоящее время это невозможно, если мы запускаем скрипт python непосредственно в Maya Script Editor, например, нажав кнопку «Загрузить сценарий», потому что Maya недостаточно умен, чтобы Pydevd знал, что весь материал в редакторе скриптов является полным модулем python file - он по-прежнему по сути является линейным интерпретатором python, только в виде многострочного редактора, который дает нам возможность редактирования.
Таким образом, ключ заключается в том, как дать pydevd знать, что такое весь скрипт модуля python. Это делается путем запуска кода через import
. Неудивительно, что импортируемый должен быть целым модулем кода python. В результате, после запуска pydevd в Maya с помощью
import pydevd
pydevd.settrace('the.remote.debugger.IP', port=7720, stdoutToServer=True, stderrToServer=True)
, мы должны вызвать код питона, который мы хотим отладить, набрав в Script Editor
import theBuggyModule
Таким образом, после нажатия синей «Выполнить» icon, редактор сценариев перестанет отвечать, потому что поток выполнения теперь передается удаленному отладчику PyCharm. Иногда PyCharm по-прежнему испытывает определенные трудности в распознавании источника и, следовательно, в обнаружении точек останова. В этом случае просто нажмите ссылку «Автоматическое обнаружение» на вновь созданной вкладке в PyCharm, и исходный файл должен быть в списке. Это делается только один раз. Обратите внимание, что это работает только тогда, когда карта пути задана, как описано в моем вопросе. Если нет, вы должны правильно установить сопоставление, чтобы PyCharm мог найти источник на удаленном компьютере, на котором запущена служба удаленного отладчика.
Я знаю, что мой ответ не идеален, поэтому любой (правильный) дополнительный материал приветствуется. Просто не говорите: «Это невозможно», «Вы можете только отлаживать локально», «Это не так» или что-то в этом роде. Благодарю.
Да, конечно, я имею в виду IDE PyCharm, чтобы поймать точку останова, и я запустил код Python в Maya Script Editor. – user5280911
Что я имею в виду, так это то, что только идеал может интерпретировать точки останова, управляющие им только через ide. – cronicryo
Я понятия не имею, о чем вы говорите. Кажется, что вы не знаете, что такое «удаленный отладчик». – user5280911