サブプロセスを使用してスクリプトを呼び出す必要があるdjangoサイトがあります。私はASCII文字を使用していたときにサブプロセスの呼び出しが動作しますが、私は、UTF-8でエンコードされた引数を発行しようとすると、私はエラーを取得する:Pythonサブプロセスとunicode execv()arg 2は文字列のみを含む必要があります
execv() arg 2 must contain only strings.
文字列u'Wiadomo\u015b\u0107'
はPostgresのDBから来ています。この例では、ポーランド語を使用しています。私が英語の単語を使ってそれを実行するとき、私は問題がありません。
呼び出しは次のようになります。
subprocess.Popen(['/usr/lib/p3web2/src/post_n_campaigns.py', '-c', u'bm01', '-1', u'Twoja', '-2', u'Wiadomo\u015b\u0107', '-3', u'', '-4', u'', '-5', u'', '-6', u'', '-m', u'pl', '-p', 'yes'])
私はこのケースで文字列を処理するかどうかはわかりません。奇妙なことは、これがPythonインタプリタを通して実行されたときにうまく動作することです。
おかげで...私はそれが既にエンコードされていると思った... – deecodameeko