Mam witrynę django, gdzie muszę wywołać skrypt przy użyciu podprocesu. Wezwanie podproces działa, gdy używam znaków ASCII, ale gdy próbuję wydać argumenty, które są zakodowane w UTF-8, pojawia się błąd:Python subprocess i unicode execv() arg 2 muszą zawierać tylko ciągi znaków
execv() arg 2 must contain only strings.
Ciąg u'Wiadomo\u015b\u0107'
przychodzą od PostgreSQL db. Ten przykład używa polskich słów. Kiedy uruchamiam go przy użyciu angielskich słów, nie mam żadnych problemów.
Połączenie wygląda następująco:
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'])
nie jestem pewien, jak radzić sobie sznurki w tym przypadku. Dziwne jest to, że działa to dobrze, gdy uruchamiam go przez interpretera python.
dzięki że załatwiło sprawę ... Myślałem, że jest już zakodowana ... lekcja się nauczyła. – deecodameeko