如何在PyCharm中调试通过Shell脚本启动的Python程序?
如何在PyCharm中调试通过Shell脚本启动的Python程序
有两种实用方法可以解决断点不触发的问题,具体操作如下:
方法一:修改Shell脚本,接入PyCharm远程调试
- 找到PyCharm安装目录下的
pydevd-pycharm.egg文件,路径通常是:- Mac:
/Applications/PyCharm.app/Contents/plugins/python/helpers/pydev/pydevd-pycharm.egg - Windows:
C:\Program Files\JetBrains\PyCharm\plugins\python\helpers\pydev\pydevd-pycharm.egg
- Mac:
- 修改
test.sh脚本中的启动命令,加入调试参数:
若提示找不到python -m pydevd_pycharm --host=localhost --port=5678 scripts/recognition.py @scripts/options/with_bert.optpydevd_pycharm模块,可直接指定egg文件路径启动:
注意:如果你的PyCharm调试端口不是默认的5678,需替换为实际端口。python -p /path/to/pydevd-pycharm.egg --host=localhost --port=5678 scripts/recognition.py @scripts/options/with_bert.opt - 在PyCharm中打开项目,给
recognition.py设置好断点。 - 打开Run/Debug Configurations,添加一个Python Remote Debug配置,主机填
localhost,端口填5678(和脚本中一致),保存配置。 - 先启动这个Remote Debug配置,再在命令行执行
sh test.sh,程序运行到断点处就会自动暂停。
方法二:在PyCharm中直接模拟脚本的启动逻辑
这种方法无需修改Shell脚本,更简便:
- 在PyCharm中找到
scripts/recognition.py文件。 - 点击顶部菜单栏Run -> Edit Configurations,添加一个Python配置。
- 配置页面关键项设置:
- Script path:选择
scripts/recognition.py的完整路径; - Parameters:填入
@scripts/options/with_bert.opt(确保路径和Shell脚本中一致); - Working directory:设置为你执行
sh test.sh时所在的目录(一般是项目根目录)。
- Script path:选择
- 保存配置后,直接点击调试按钮启动程序,断点会正常触发。
两种方法中,方法二更适合日常调试,无需额外配置远程调试环境。
内容的提问来源于stack exchange,提问作者marlon
相关产品推荐
相关产品推荐

