python OSError: [Errorno 2] No such file or directory

python OSError: [Errorno 2] No such file or directory

当我在 ubuntu 14.04 和 python 2.7 中执行下一个 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 通常在找不到文件或目录组件时发生。

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

很有可能(假设它正在写入)您正在尝试写入类似 /foo/bar/xyzzy.plugh 的内容,但没有 /foo/bar 目录。

在您的 python 文件 marathon_lb.py 行 906

returncode = subprocess.call(args=cmd)

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