Это скомпилированное расширение C, а не чистый Python, поэтому вы, как правило, не можете просто скопировать DLL/файл с одной установки на другую: бинарный интерфейс Python изменяется на 0,1 обновления номера версии (но не 0.0.1 обновления). В любом случае, _winreg, по-видимому, статически встраивается в Python.exe в текущие официальные сборки Windows, а не заносится в папку «DLL».
_winreg.ExpandEnvironmentStrings
не доступен до 2.6, но Вы можете с удовольствием вернуться к os.path.expandvars
, который делает более-менее одно и то же. (Он также поддерживает переменные $ VAR, которые под Windows, возможно, вам не нужны, но это может быть не проблема.) Вы правы:% -syntax для expandvars под Windows был введен только в версии 2.6, как бесполезно. Похоже, вам понадобится следующее.
Если худшее приходит к худшему это довольно просто писать вручную:
import re, os
def expandEnvironmentStrings(s):
r= re.compile('%([^%]+)%')
return r.sub(lambda m: os.environ.get(m.group(1), m.group(0)), s)
Хотя в любом случае всегда есть неспособность Python 2.x для чтения Unicode envvars беспокоиться.
Почему вы хотите скопировать эту библиотеку для 2.6.x в 2.5.x в первую очередь? IIRC это часть стандартной библиотеки, поэтому она должна быть доступна там в любом случае ... –
Поскольку ExpandEnvironmentStrings недоступен в версии 2.5. –