Я должен опубликовать это как комментарий к ответу Питера Айзентраута, но я продолжаю нажимать ввод и затем случайно отправлять сообщение до того, как комментарий будет закончен; Кроме того, я хочу добавить некоторые ссылки и другие вещи:
Я закончил тем, что сделал именно то, что рекомендовал Питер - и перекомпилировал из источника, и опубликовал эту проблему на форуме EnterpriseDB . По какой-то причине мое сообщение на форуме появилось под каким-то именем пользователя, которого я никогда раньше не слышал, я даже мог прочитать все сообщения этого пользователя. Может быть, он / она вошел в систему до меня, для меня это выглядит довольно серьезной ошибкой в их программном обеспечении на форуме: - (
В любом случае, для создания бинарного файла plpython требуется не более чем загрузка последнего исходного кода PostgreSQL, распаковка его и передача некоторых параметров в configure
в виде документированного :
configure --with-python PYTHON=/usr/bin/python2.6
Затем запустите make
для сборки. Несмотря на то, что версия Python по умолчанию в моей системе - 2.6, и я явно передаю это как параметр, configure выводит это сообщение
checking for python... /usr/bin/python2.6
checking for Python distutils module... yes
checking Python configuration directory... /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/config
checking how to link an embedded Python application... -L/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/config -lpython2.6 -ldl
checking whether Python is compiled with thread support... yes
но встроенный двоичный файл в любом случае использует установку Python 2.7, которую я даже не помню, я установил:
otool -L <postgres build dir>/src/pl/plpython/plpython2.so
<postgres build dir>/src/pl/plpython/plpython2.so:
/Library/Frameworks/Python.framework/Versions/2.7/Python (compatibility version 2.7.0, current version 2.7.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.10)
Это достаточно хорошо для меня, все, что мне нужно, это более свежая версия, чем 2.5. Все еще странно.
Существующий двоичный файл plpython (тот, который использует Python 2.5) находится в каталоге установки EnterpriseDB по умолчанию /Library/PostgreSQL/9.0/lib/postgresql/plpython2.so
с символической ссылкой plpython.so
на него в той же папке. Я предпочитаю сохранить оригинал только для того, чтобы быть на безопасной стороне, и вместо символической ссылки сделать повторную ссылку:
sudo mv plpython2.so plpython25.so
sudo cp <postgres build dir>/src/pl/plpython/plpython2.so plpython27.so
sudo ln plpython27.so plpython2.so
хммм, может быть, это должно войти в вики ...