当我使用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
答案 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)