Intellij / Pycharm не может отлаживать модули Python

Я использую публикации сообщества PyCharm / IntelliJ из wile, чтобы писать и отлаживать скрипты Python, но теперь я пытаюсь отладить модуль Python , а PyCharm выполняет неправильный синтаксический анализ командной строки, вызывая ошибку выполнения, или, может быть, я делаю плохая конфигурация.

Это моя конфигурация запуска / отладки:

IntelliJ запускать / отлаживать конфигурацию модуля Python

И это выполняется, когда я запускаю модуль (здесь нет проблем):

/usr/bin/python3.4 -m histraw 

Но когда я отлаживаю, это вывод в консоли IntelliJ:

 /usr/bin/python3.4 -m /opt/apps/pycharm/helpers/pydev/pydevd.py --multiproc --client 127.0.0.1 --port 57851 --file histraw /usr/bin/python3.4: Error while finding spec for '/opt/apps/pycharm/helpers/pydev/pydevd.py' (<class 'ImportError'>: No module named '/opt/apps/pycharm/helpers/pydev/pydevd') Process finished with exit code 1 

Как видите, параметры неверны, а опция after -m перед именем модуля передается скрипт отладки IntelliJ.

Я также попытался просто поместить -m histraw в поле Script , но не работает, это поле предназначено только для того, чтобы помещать пути скриптов Python, а не модули.

Есть идеи?

3 Solutions collect form web for “Intellij / Pycharm не может отлаживать модули Python”

Есть еще один способ заставить его работать. Вы можете написать скрипт python для запуска своего модуля. Затем просто настройте PyCharm для запуска этого скрипта .

 import sys import os import runpy path = os.path.dirname(sys.modules[__name__].__file__) path = os.path.join(path, '..') sys.path.insert(0, path) runpy.run_module('<your module name>', run_name="__main__",alter_sys=True) 

Затем работает отладчик.

Мне было проще создать файл начальной загрузки (debuglaunch.py) со следующим содержимым.

 from {package} import {file with __main__} if __name__ == '__main__': {file with __main__}.main() 

Например, чтобы запустить locustio в отладчике pycharm, я создал debuglaunch.py ​​следующим образом:

 from locust import main if __name__ == '__main__': main.main() 

И сконфигурированный pycharm следующим образом.

pycharm_debug_config

ПРИМЕЧАНИЕ. Я обнаружил, что не смог войти в отладчик, если не добавить точку останова на main.main (). Однако это может быть специфично для locustio.

Проблема уже решена с PyCharm 4.5.2. См. Соответствующую проблему в трекер PyCharm: https://youtrack.jetbrains.com/issue/PY-15230

Python - лучший язык программирования в мире.