如何在Python中调试成subprocess.call()?

埃尔德里

这些天,我试图理解项目的源代码。我逐行运行项目,直到此行一切正常:

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中设置一些断点,但没有发现任何问题。有什么方法可以调试子流程,而不是深入子流程模块的代码本身的代码?

我想您的主要专案会变更PYTHONPAHsys.path)。查找os.environ您的项目,并尝试在此环境中运行第二个脚本。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在 Python subprocess.call 中向 Bash 脚本添加变量

如何在subprocess.check_call()中传递多个参数?

如何在子进程中读取json文件并在python代码的subprocess.call中使用它?

Python subprocess.call问题

Python:subprocess.call 注入

如何在subprocess.call中使用整数

我如何在subprocess.call()之后输入密码

如何对 subprocess.call() 进行单元测试以检查它是否在 python 中调用

Python 如何将“\”存储在数组中以在 subprocess.call bash 命令中使用

如何使用subprocess.call从Python Shell exec拦截stdout?

如何使用Python捕获subprocess.call错误?

在我的python代码中停止subprocess.call循环

如何在LLDB中调试成员变量(即数组,字典)?

使用 subprocess.call 的 Python 执行顺序

python错误的subprocess.call返回代码

使用 subprocess.call 执行 python 文件?

解析来自Python的subprocess.call()输出

python subprocess.call和管道

Python:通过 subprocess.call 命令重申

| 不在 Subprocess.call 中工作

如何强制 subprocess.call 或 os.system 在 bash 中运行,而不是在 dash 中运行?

检索subprocess.call()的输出

subprocess.call 彩色输出

使用 Python subprocess.call() 時如何寫入文件的開頭?

如何将Python的subprocess.call()输出重定向到文件?

为什么`subprocess.check_call(...,stderr = sys.stdout)`在Python 2.6中失败?

Python 中的 subprocess.call 没有这样的文件或目录错误

.call()方法如何工作?

call()中忽略的参数