postgres 9.5 create function plpthon3u重置与服务器

时间:2016-05-23 04:05:40

标签: postgresql-9.5 plpython

我在Windows 10,x64上安装了postgresql 9.5。

我在服务器路径上创建了带有python 3.3.5的扩展plpython3u,它似乎成功创建了扩展:

SELECT * FROM pg_available_extensions
WHERE name like '%python%' order by name;


       name        | default_version | installed_version |                  comment

-------------------+-----------------+-------------------+------------------------------------------
-
 hstore_plpython2u | 1.0             |                   | transform between hstore and plpython2u
 hstore_plpython3u | 1.0             |                   | transform between hstore and plpython3u
 hstore_plpythonu  | 1.0             |                   | transform between hstore and plpythonu
 ltree_plpython2u  | 1.0             |                   | transform between ltree and plpython2u
 ltree_plpython3u  | 1.0             |                   | transform between ltree and plpython3u
 ltree_plpythonu   | 1.0             |                   | transform between ltree and plpythonu
 plpython2u        | 1.0             |                   | PL/Python2U untrusted procedural language
 plpython3u        | 1.0             | 1.0               | PL/Python3U untrusted procedural language
 plpythonu         | 1.0             |                   | PL/PythonU untrusted procedural language
(9 rows)

但是当我尝试创建以下功能时(来自pg docs

CREATE FUNCTION pymax (a integer, b integer)
  RETURNS integer
AS $$
  if a > b:
    return a
  return b
$$ LANGUAGE plpython3u;

psql(或pgadmin3)终端的连接被重置。

路径上的python 3.3是anaconda的distb并且可以自行运行。我无法在postgresql文档中找到所需的python版本,并使用此处所述的依赖walker Postgres database crash when installing plpython来查找服务器的lib /指向plpython3.dll所需的dll。 / p>

任何人都可以帮我解决我错过的事情吗?

非常感谢

1 个答案:

答案 0 :(得分:0)

仔细查看安装下载,我阅读了readme.txt。这清楚地说明了如何包括语言包,包括plpython。不需要依赖walker或类似的东西。

遵循readme.txt中的简单明了的说明就是让plpython扩展工作正常。没有理由不读自述文件。我的坏。

我没有匹配所需的python版本。底线是postgresql似乎对python的特定分布相对敏感,而不仅仅是版本 - (我已经匹配版本postgres python distb 3.3.4和anaconda 3.3.4。)

具体来说,设置服务器的路径以使用与服务器一起安装的python,在我的情况下使用C:\ EnterpriseDB \ LanguagePack \ 9.5 \ x64 \ Python-3.3,就是让它正常工作所需的一切。

感谢Adrian Klaver在pgsql-general邮件列表上让我排序。这个答案仅供将来参考,因为我声称很容易错过自述文件: - )。