![](/img/trans.png)
[英]How to install PL/Python on PostgreSQL 9.3 x64 Windows 7?
[英]Install PL/Python on Windows for PostgreSQL 12
我一直在为一个项目研究 FHIR,我们正在使用 PostgreSQL 作为数据库。 在阅读文档时,我开始了解 PL/Python 并决定试一试,但我无法安装 python 扩展。
当我运行命令CREATE EXTENSION pypthon3u;
我收到以下错误
Could not load library "C:/Program Files/PostgreSQL/12/lib/plpython3.dll": The specified module could not be found.
我已经检查了这个SO 答案,但它无济于事。
我的 PostgreSQL 版本: PostgreSQL 12.2,由 Visual C++ build 1914 编译,64 位
安装的 Python 版本: 3.7.7(64 位)
操作系统信息: Windows 10 企业版1909操作系统内部版本18363.657
对我来说,它看起来像是不正确的 Python 版本,但我正在安装 python 3.7.* 版本,根据安装目录内的doc\installation-notes.html
中指定的方式编译 PostgreSQL。
任何帮助将不胜感激。
即使您使用 EDB 安装程序的 Stack Builder 安装 Python,您仍然必须按照说明“确保它们包含在启动数据库服务器的 PATH 变量中”。 我必须在系统级别执行此操作,因为我找不到为单个服务设置 PATH 的方法。
然后你还需要设置 PYTHONPATH ,这似乎没有记录。
所以我最终将c:\edb\languagepack\v1\Python-3.7
添加到 PATH 并使用c:\edb\languagepack\v1\Python-3.7\Lib
创建 PYTHONPATH 。
我必须添加包含 plpython3.dll 的目录做系统/用户变量(windows)。
我也在尝试同样的方法。 虽然我不是专家,而且我的错误有点不同,但这里有几件事需要检查:
share\extension\
下,应该有plpython3u.control
和plpython3u--1.0.sql
能够做CREATE EXTENSION plpython3u;
lib\
下,应该有一个plpython3.dll
。 这可能是在上述步骤之后创建的。lib\
在您的PATH
中。PYTHONHOME
应该在系统/用户环境中设置,或者应该在服务器启动之前设置。 似乎版本没有设置这个名称那么重要。 plpython3.dll
似乎在寻找一个python39.dll
但我可以在 3.8 安装中使用它。我使用了 Postgres 的压缩版本,所以下面是我运行服务器的方式。
set PATH=%PATH%;d:\pgsql\bin\;d:\pgsql\lib\
set PYTHONHOME=c:\DevTools\Python\Python38
pg_ctl -D d:\pgsql\pgdata -l logfile start
PS:没有PYTHONHOME
,服务器崩溃。 服务器本身或psql
重新启动服务器,但我不确定pgAdmin
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.