У меня есть сайт django, где мне нужно вызвать сценарий с помощью подпроцесса. Вызов подпроцесса работает, когда я использую символы ascii, но когда я пытаюсь выдать аргументы в кодировке utf-8, я получаю сообщение об ошибке:
execv() arg 2 must contain only strings.
Строка u'Wiadomo \ u015b \ u0107 '
является исходящий из базы данных postgres. В этом примере используются польские слова. Когда я запускаю его с использованием английских слов, у меня нет проблем.
Вызов выглядит так:
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.