mysqlデータベースをバックアップするサブプロセスを呼び出したいと思います。 の端末で正常に走った(とmydatabase.sqlという名前のファイルを作成した)コマンドラインは次のとおりです。Python - subprocess.check_callはCalledProcessError例外を返します
今mysqldump -uroot -ppassword --add-drop-database --database mydatabase > mydatabase.sql
サブプロセスを呼び出すためのpythonで実行されるコード:
args = shlex.split('mysqldump -uroot -ppassword --add-drop-database --database mydatabase > mydatabase.sql')
subprocess.check_call(args)
exeptionは(何のファイルが作成されていない)発生します
Traceback (most recent call last):
File "<pyshell#29>", line 1, in <module>
subprocess.check_call(args)
File "/usr/lib/python3.2/subprocess.py", line 485, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['mysqldump', >'-uroot', '-ppassword', '--add-drop-database', '--database', >'mydatabase', '>', 'mydatabase.sql']' returned non-zero exit status 2
私はさまざまな方法を試してみましたが、彼らはまだ動作しません:
args = shlex.split('/opt/lampp/bin/mysqldump -uroot -ppassword --add-drop-database --database mydatabase > mydatabase.sql')
subprocess.check_call(args)
または
args = shlex.split('/opt/lampp/bin/mysqldump -uroot -ppassword --add-drop-database --database mydatabase > mydatabase.sql')
subprocess.Popen(args)
私はまた、偽= Trueかまたはシェル=シェルで試してみました。どちらの場合も、まだ動作しません。
私は自分の問題の答えをgoogleで見つけましたが、問題を示す手がかりがありません。おそらく私の最後の希望です。
ありがとうございました!私はあなたの答えをプラスしたいですが、私はより多くの担当者が必要です。 –