Rozważmy następujący przykład:Dlaczego funkcja Popen ulega awarii w systemie Windows, jeśli parametr "env" zawiera obiekt Unicode?
>>> import subprocess as sp
>>> sp.Popen("notepad2.exe",env={"PATH":"C:\\users\\guillermo\\smallapps\\bin"})
<subprocess.Popen object at 0x030DF430>
>>> sp.Popen("notepad2.exe",env={"PATH":u"C:\\users\\guillermo\\smallapps\\bin"})
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python26\lib\subprocess.py", line 633, in __init__
errread, errwrite)
File "C:\Python26\lib\subprocess.py", line 842, in _execute_child
startupinfo)
TypeError: environment can only contain strings
Mam sięgają błąd do tego kodu CPython:
http://hg.python.org/cpython/file/ca54c27a9045/Modules/_winapi.c#l511
jestem w stanie udnerstand co PyUnicode_Check
robi, choć:
http://hg.python.org/cpython/file/26af48f65ef3/Objects/unicodeobject.c#l73
Więc sugerujesz przy użyciu Pythona 3 będzie rozwiązać ten problem Proszę o poradę. Ponieważ jestem zbyt zajęty tym problemem https://github.com/django-dbbackup/django-dbbackup/issues/147 –