python OSError:[Errorno 2]没有这样的文件或目录

时间:2016-05-26 08:20:38

标签: python python-2.7 subprocess

当我使用python 2.7在ubuntu 14.04中执行下一个python脚本时:

./marathon_lb.py --marathon http://172.16.8.231:8080 --group external

它抛出下一个错误:

Traceback (most recent call last):
  File "./marathon_lb.py", line 1441, in <module>
    args.ssl_certs, ConfigTemplater())
  File "./marathon_lb.py", line 1130, in regenerate_config
    ssl_certs, templater), config_file)
  File "./marathon_lb.py", line 933, in compareWriteAndReloadConfig
    if writeConfigAndValidate(config, config_file):
  File "./marathon_lb.py", line 906, in writeConfigAndValidate
    returncode = subprocess.call(args=cmd)
  File "/usr/lib/python2.7/subprocess.py", line 522, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1327, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

2 个答案:

答案 0 :(得分:0)

如果没有实际的源代码,有点难以辨别,但是当找不到文件或目录组件时,通常会发生错误#2。

鉴于您在堆栈跟踪中调用writeConfigAndValidate,您应该首先调查实际写入的文件。

有一个很好的机会(考虑到它的写作),你正试图写一些像/foo/bar/xyzzy.plugh这样的东西而且没有/foo/bar目录。

答案 1 :(得分:0)

在你的python文件marathon_lb.py第906行

returncode = subprocess.call(args=cmd)

使用subprocess.call(cmd, shell=True)