【发布时间】:2019-11-22 17:51:56
【问题描述】:
我有一些 python 代码调用一个调用另一个 python 文件的 bash 脚本。我正在尝试在 PyCharm 中调试代码,但似乎没有到达最内层文件中的断点。
代码设置如下:
outter.py 通话-> bash_script 通话-> inner.py
我在inner.py 中设置了断点,但是当我尝试调试outter.py 时,没有到达inner.py 中的断点。我在inner.py 中放了一些打印语句,这些语句打印到标准输出,所以我知道该文件实际上已被访问。
诚然,自从我使用 PyCharm 以来,这已经很火热了,所以我不太清楚自己是做错了什么,还是因为 bash 文件而发生了什么奇怪的事情。
编辑: 具体调用如下:
#outter.py
...
subprocess.run('./bash_script param1', shell=True)
...
#bash_script
...
python3 -m inner.py "$@"
...
【问题讨论】:
-
outter.py如何调用bash_script?
-
subprocess.run('./bash_script param1', shell=True)
-
PyCharm 不一定运行您的
inner.py文件。正在生成一个运行inner.py的独立进程。新进程不知道您的断点。在这种情况下,我建议您(在调试时)在调试器打开的情况下通过 pycharm 运行inner.py。如果您需要自己设置sys.argv以“模拟”批处理脚本运行时会出现的情况,请执行此操作 (sys.argv[1] = param1; sys.argv[2] = param2; …) -
我担心我不得不这样做,哈哈