这些天我试图理解一个项目的源代码。我逐行运行项目,一切正常,直到这一行:
res = subprocess.call(command, env=os.environ)
我检查了变量“command”并意识到这个函数只是向另一个python脚本抛出一个命令并尝试在一个子进程中执行它。所以我跳出Eclipse,并尝试在同一目录下通过终端执行命令。
现在这就是我得到的:
Traceback (most recent call last):
File "/home/elderry/Projects/git/tahoe-lafs/support/bin/tahoe", line 6, in <module>
from pkg_resources import load_entry_point
File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 2850, in <module>
working_set.require(__requires__)
File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 696, in require
needed = self.resolve(parse_requirements(requirements))
File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 594, in resolve
raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: allmydata-tahoe==1.10.0.post27
然后我就彻底迷失了方向,子进程到底跑到哪里去了?为什么脚本在程序中运行良好但在终端中运行良好?由于该脚本也包含在项目中,因此我希望我在 Eclipse 中设置了一些断点,但没有捕获任何内容。有没有办法调试到子进程,而不是深入到子进程模块代码本身的代码中?