这些天,我试图理解项目的源代码。我逐行运行项目,直到此行一切正常:
res = subprocess.call(command, env=os.environ)
我检查了变量“ command”,并意识到此功能只是将命令抛出到另一个python脚本,并尝试在子进程中执行它。因此,我跳出了Eclipse,并尝试通过Terminal在同一目录下执行命令。
现在,这就是我得到的:
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中设置一些断点,但没有发现任何问题。有什么方法可以调试子流程,而不是深入子流程模块的代码本身的代码?
我想您的主要专案会变更PYTHONPAH
(sys.path
)。查找os.environ
您的项目,并尝试在此环境中运行第二个脚本。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句