Intellij/Pycharm无法调试Python模块

Mar*_*uiz 16 python debugging python-module intellij-idea pycharm

我使用PyCharm/IntelliJ社区版本来编写和调试Python脚本,但现在我正在尝试调试Python模块,而PyCharm执行错误的命令行指令解析,导致执行错误,或者我正在制作配置错误.

这是我的运行/调试配置:

IntelliJ运行/调试Python模块配置

这是在我运行模块时执行的(这里没有问题):

/usr/bin/python3.4 -m histraw
Run Code Online (Sandbox Code Playgroud)

但是当我调试时,这是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
Run Code Online (Sandbox Code Playgroud)

如您所见,参数分析错误,并且在-m选项之后,在模块名称之前传递IntelliJ调试脚本.

我也试过只是把-m histraw脚本领域,但不工作,那场只是把Python脚本路径,而不是模块.

有任何想法吗?

小智 19

还有另一种方法可以使它工作.你可以编写一个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)
Run Code Online (Sandbox Code Playgroud)

然后调试器工作.


Yur*_*man 6

在 PyCharm 2019.1(专业版)中,我可以在配置下选择作为模块运行选项,如下所示

在此输入图像描述

  • 是的,该公司声称自 PyCharm 4.5.2 以来已经解决了该问题(没有解释如何解决,只是将问题标记为已解决),但实际上我看到自 PyCharm 2018 以来该问题已解决,并且有两个版本:社区版和专业版 (2认同)