PostgreSQL无法创建plpythonu扩展

时间:2016-02-04 20:28:12

标签: python postgresql plpython

我试图在Windows上使用Python脚本在PostgreSQL中编写函数,并且在尝试创建plpythonu扩展时遇到错误消息。我正在运行的命令是:

CREATE EXTENSION plpythonu;

其中会产生以下错误消息:

ERROR: could not access file "$libdir/plpython2": No such file or directory
SQL state: 58P01

我也尝试过跑步:

CREATE EXTENSION plpython3u;

会导致此错误:

ERROR: could not load library "C:/Program Files (x86)/PostgreSQL/9.2/lib/plpython3.dll": The specified module could not be found.
SQL state: 58P01

plpython3.dll文件存在于此位置,但显然缺少一些关键依赖项。我到处搜索,发现没有任何帮助。我在机器上安装了Python 2和3 ......

2 个答案:

答案 0 :(得分:1)

EnterpriseDB的最新(9.4或更高版本)二进制安装仅包含plpython3u.dll。在版本9.4到9.6中,我必须安装python 3.3才能运行plpython3u。

您可以使用Dependency Walker.

检查plpython3u.dll需要哪个版本的Python

答案 1 :(得分:0)

可以找到完整的答案: https://www.broadband-forum.org/download/TR-069_Amendment-6.pdf 假定您已使用stackbuilder安装edb语言包。 请在安装中检查命令的正确性。 例如。 postgresql数据的路径,安装edb和python版本的路径。 使用依赖步行程序(depends.exe)时,请仅注意pythonxx.dll。对于较早的PG版本,这可能会或可能不会与EDB语言包安装的版本一致。对于版本10.7,需要版本3.4 Python。对于Windows,更高的3.4 Python版本似乎没有msi安装程序。您可能必须安装3.4.4,或尝试首先将PG 10升级到最新版本(10.11)。这个版本需要python 3.7,因此您可以使用EDB下载。 但是python版本可能已经存在并已找到。 https://postgresrocks.enterprisedb.com/t5/PostgreSQL/unable-to-install-pl-python-extension/m-p/4090(在stackoverflow上)有点接近,但是没有详细说明所需的环境变量。 提出的解决方案不需要您永久更改env var,这在使用多个python安装时很有帮助。