подпроцесс python и unicode execv () arg 2 должны содержать только строки

У меня есть сайт 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.

12
задан rypel 22 May 2013 в 21:08
поделиться