У меня есть сайт django, где мне нужно вызвать script с помощью подпроцесса. Вызов подпроцесса работает, когда я использую символы ascii, но когда я пытаюсь вывести аргументы, кодированные utf-8, я получаю сообщение об ошибке:
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.