| |||
|
|
Питон и его питонцы Вот берем python for Windows. Официальный, c www.python.org. Ставим на машину. Оно там прописывает кучу всего интересного в реестр. Берем компилируем с этим питоном плагин-dll для большой програмы, работающей как сервис. (это был plpython и postgresql соответственно). Запускаем (на другой машине, но python там ровно из того же дистрибутива поставлен). python27.dll грузится. Ну еще бы - оно его в C:\Windows\System32 положило. Поэтому сервис её радостно нашел. Но при попытке обратиться к интерпретатору в лог прилетает ImportError: module site not found. Выясняется что надо установить переменную окружения PYTHONHOME. Тогда все работает. Ага, чтобы сервису была доступна, который там от системного юзера работает. Ну то есть мне, конечно, не в лом вписать в функцию инициализации plpython что-то вроде #ifdef _WIN32 hklm = RegOpenEx(HKEY_LOCAL_MACHINE); RegGetValue(hklm,"Software\\Python\\PythonCore\\" #PY_MAJOR_VERSION "." #PY_MINORVERSION "\\InstallationPath",NULL,&pythonhome); RegClose(hklm) putenv("PYTHONHOME",pythonhome); #endif Но почему этого не сделали авторы самого питона, чтобы их dll-ку можно было груизть из любого места системы? Upd Согласно документации авторы самого питона так и сделали. Только почему-то оно у меня не работало в 2.7.11. В 2.7.14 работает. This entry was originally posted at https://vitus-wagner.dreamwidth.org/1954 |
||||||||||||||