在Python中,我也行:巴貝爾蟒蛇check_output錯誤非零退出狀態2
check_output(['babel', 'www/scripts6/lib/data.js', '>', 'www/scripts/lib/data.js'])
它給我的錯誤:
subprocess.CalledProcessError: Command '['babel', 'www/scripts6/lib/data.js', '>', 'www/scripts/lib/data.js']' returned non-zero exit status 2
我難倒。該命令在shell中正常工作。爲什麼Python抱怨?
編輯:使用
print(check_output(['babel', './www/scripts6/lib/data.js', '>', './www/scripts/lib/data.js'], shell=True))
代替產生在終端中輸出
b'"use strict";\n\n'
。這表明,巴貝爾現在正在工作,但巴貝爾正在輸入任何東西,並輸出到終端。
你輸入的是兩個字符串,而不是單個字符串。這裏:''path/to/babel ./www/scripts6/lib/data.js>' './www/scripts/lib/data.js'' – mareoraft
@mareoraft在Python中,兩個沒有任何順序的字符串干預運算符由解釋器自動連接到單個字符串。 ''a''b''完全等同於''ab''。 (請參閱[此處](https://docs.python.org/2/reference/lexical_analysis.html#string-literal-concatenation)。) – Louis
您提供的第二種解決方案僅適用於babel的完整路徑。如果我的一個開發者將他們的babel存儲在別處,這可能是一個可移植性問題。 – mareoraft