我在Windows 2012 R2 Server上安装了PostgreSQL Server 9.6.0和Python 3.4.2。
我将 plpython3.dll 复制到 C:/ Program Files / PostgreSQL / 9.6 / lib /
在PostgreSQL中我尝试运行此命令: CREATE EXTENSION plpython3u;
我收到此消息:
错误:无法加载库“C:/ Program Files / PostgreSQL / 9.6 / lib / plpython3.dll”:找不到指定的模块。
在此文件夹下: C:\ Program Files \ PostgreSQL \ 9.6 \ share \ extension 有plpython3u文件。
如何让PostgreSQL识别这个Python 3扩展?
谢谢!
答案 0 :(得分:2)
在c:\ windows \ system32中复制python34.dll文件,并将副本命名为python33.dll
创建语言plpython3u应该没有问题。
答案 1 :(得分:1)
这可能会有所帮助,我一直在努力解决这个问题。对我来说,只有当我安装了python的正确版本并添加了环境变量的路径时才能使用。我不确定python 3.4.0是否是 PostgreSQL Server 9.6.0 的正确版本,但它与 PostgreSQL Server 10.0 一起工作正常。
尝试使用版本python-3.4.0.amd64 for windows 64bit或其他版本Python 3.4.0 downloads Link
要添加的环境变量:
C:\ Python34 \脚本 C:\ Python34 \
答案 2 :(得分:0)
由于py33已被淘汰,你可能很快就会感到沮丧,因为缺乏预先构建的二进制包,lxml,pyzmq等都需要从源代码构建。如果您需要任何二进制模块,请确保您已正确设置编译器。
答案 3 :(得分:0)
与Postgres 9.6 Windows 10完全一样的情况。 PL / Python3U无法通过。
解决方法:
已安装Python34 64位Windows 10版本。 将Python34.dll作为Python33.dll复制到c:\ windows \ system32,并且可以正常工作。
答案 4 :(得分:0)
该信息位于源安装软件包的Makefile中
我们需要libpython作为共享库。在Python> = 2.5中,配置直接询问Python。但是,由于在Debian中已经有很长时间了(http://bugs.debian.org/695979,并且为了支持较旧的Python版本,所以我们发现是否有一个文件像共享库一样被命名为备用文件。 < / p>
对于python Windows:
ifeq ($(PORTNAME), win32)
pytverstr=$(subst .,,${python_version})
PYTHONDLL=$(subst \,/,$(WINDIR))/system32/python${pytverstr}.dll
所以写的答案是:
要检查安装的版本,请打开位于 C:\ Program Files \ PostgreSQL \ 9.4 \ lib (随您的环境更改路径)中的plpython3.dll
使用记事本++并搜索 PyUnicode_AsUTF8String python dll版本在最后一个单词中可见(在我的情况下为python33.dll)
检查您的安装以选择python的良好安装程序
SELECT version();
PostgreSQL 9.4.15,由Visual C ++ build 1800编译, 64位
所以我需要在64位上安装Python 33
编辑2020-10-02
二进制 .. pgsql \ doc \ installation-notes.html 的文档中也包含所有这些信息,请参见标题过程语言