Если у вас заработал plpython3 с первого раза на винде - вы счастливчик.
Что я только не пыталась сделать:
- переустанавливала Postgresql (как оказалось версия питона+библиотечки +- хардкодятся при установке и зависят от найденного на компе питона)
- Скачивала python2, ставила его в PATH, делая питоном по умолчанию после этого переустанавливала Postgresql;
- использовала plpythonu, plpython2u, plpython3u
- пробовала ставить разные верисии 3го питона
- пыталась в лайфхаки с формуов
загуглила как перейти на mssql
Не знаю какая страница это гугла была, но finally я нашла то, что мне помогло.
Шо делать спросите вы.
Одна магическая строчка в консольке от имени администратора:
set PYTHON_HOME=C:\Program Files\Python37(директория вашей папки с python)
Есть вероятность что это делать надо до установки postgres-а. (на момент установки переменной среды python_home я опять снесла postgre (а не нужны ли вам бэкапы?) и потом при установке он finally начал использовать другую версию библиотечек (все файлы теперь cpython-36 хотя стоит 37 питон на компе, раньше при установке создавались cpython-37 и ничего не работало)
- удалить постгрес
- set PYTHON_HOME (и сам python добавить в PATH)
- скачать постгрес
ЕСЛИ ЭТО РАБОТАЕТ И БЕЗ УДАЛЕНИЯ постгреса - маякните.
Или если для вас это вообще не работает тоже маякните. Я вам посочувствую)))))
PS: описанные выше действия являются лично моим опытом, гарантий что оно заработает после указанных шагов - нет.
Весь способ кратко можно описать с помощью видео - https://coub.com/view/12458x
- Качаем утилиту http://www.dependencywalker.com/ и открываем plpython3.dll в \PostgreSQL(Ваша версия)\lib\plpython3.dll
- Смотрим в списке зависимостей на какой PYTHONXX.DLL он ссылается, где XX - версия.
- Качаем эту версию Python'а, затем прописываем в PATH (PATH находится в Система->Дополнительные параметры системы->Переменные среды->переменная Path) следующие строчки (В моем случае это Python 3.7)
C:\Python37\
C:\Python37\Scripts
C:\Python37
- Открываем Windows Powershell или терминал и прописываем волшебную команду из первого способа
set PYTHON_HOME=C:\Program Files\Python37(директория вашей папки с python)
- Теперь заходим в нашу папку с Python'ом, копируем python37.dll (Весит примерное 3700 КБ, находится либо в самой папке, либо в DLLs)
- Теперь этот файл кидаем в \PostgreSQL(Ваша версия)\lib\ и в \Windows\System32\