[英]bash: -c: line 0: syntax error near unexpected token `newline' when running a linux cmd from inside python-os.system
[英]Running python in subprocess.call(cmd, ...) get error with message /bin/sh: -c: line 0: syntax error near unexpected token `('
我的代码(python3 在virtualenv
运行)
try:
cmd = "cd NST/experiments && python main.py eval --model models/21styles.model --content-image " + directory + "/" + filename + " --style-image " + STYLE_IMAGE_UPLOAD + "wikiart/" + choose_file() + " --output-image " + OUTPUT_IMAGE_UPLOAD + filename + " --content-size 600" " --cuda=0"
returned_value = subprocess.call(cmd, shell=True) # returns the exit code in unix
print('returned value:', returned_value)
except Exception as e:
print(e)
我在运行脚本时遇到了这个错误
/bin/sh: -c: line 0: syntax error near unexpected token `('
/bin/sh: -c: line 0: `cd NST/experiments && python main.py eval --model models/21styles.model --content-image /Users/kanel/Documents/Developments/ML/applications/static/nst/content_image/en_20191208/20.jpg --style-image /Users/kanel/Documents/Developments/ML/applications/static/nst/style_image/wikiart/facsimile-of-may-courtly-figures-on-horseback(1).jpg --output-image /Users/kanel/Documents/Developments/ML/applications/static/nst/output_image/20.jpg --content-size 600 --cuda=0'
您在命令行中有未加引号的字符串。 通常,默认情况下引用系统调用(或子进程等)的任何传递值/变量是很好的,否则可能会像现在这样出现错误。
我对你的源代码进行了一些重组,添加了引用,并为源代码块增加了更多的可读性。
这是应该适合您的代码:)
try:
from pipes import quote as quote_path
except ImportError:
from shlex import quote as quote_path
try:
cmd = (
"cd NST/experiments && python main.py eval --model models/21styles.model "
"--content-image {} "
"--style-image {} "
"--output-image {} "
"--content-size 600 --cuda=0"
).format(
quote_path(directory + " / " + filename),
quote_path(STYLE_IMAGE_UPLOAD + " wikiart / " + choose_file()),
quote_path(OUTPUT_IMAGE_UPLOAD + filename)
)
returned_value = subprocess.call(cmd, shell=True) # returns the exit code in unix
print('returned value:', returned_value)
except Exception as e:
print(e)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.