#python-3.9 #plpython
Вопрос:
У меня есть база данных postgres 11, работающая на CentOS 7, и я пытаюсь использовать PL/python, но мне нужно указать конкретную версию интерпретатора python. Мне нужно использовать python3.9, в то время как он использует python3.6. В данный момент я не могу удалить python3.6, поэтому надеялся каким-то образом указать plpython3 на мой интерпретатор python3.9.
Я установил пакет postgresql-plpython3:
sudo yum install -y postgresql-plpython3
Я создал расширение в PG и могу запустить простую функцию PL/python, которая сообщает об используемой версии:
CREATE OR REPLACE FUNCTION pyver ()
RETURNS TEXT
AS $
import sys
pyversion = sys.version
return pyversion
$ LANGUAGE 'plpython3u';
Выполнение этого возвращает это:
# select pyver();
pyver
-----------------------------------------
3.6.8 (default, Nov 16 2020, 16:55:22)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]
(1 row)
В моих операционных системах у меня есть следующие файлы интерпретатора python и версии, которые они используют:
$ /usr/bin/python3 --version
Python 3.9.6
$ python3 --version
Python 3.9.6
$ python3.6 --version
Python 3.6.8
Что-то в модуле plpython3, похоже, жестко закодировано, чтобы указать на мою версию python3.6.