当前位置: 首页 > 知识库问答 >
问题:

创建扩展plpython3u时出错;关于PostgreSQL 9.6.0

刘元青
2023-03-14

我已经在Windows 2012 R2服务器上安装了PostgreSQL Server 9.6.0和Python 3.4.2。

我复制了Python3。dll到C:/Program Files/PostgreSQL/9.6/lib/

在PostgreSQL我尝试运行这个命令:创建EXTENSION plpython3u;

我收到这条信息:

错误:无法加载库"C:/Program Files/PostgreSQL/9.6/lib/plpython3.dll":找不到指定的模块。

在此文件夹下:C:\Program Files\PostgreSQL\9.6\share\extension有plpython3u文件

如何让PostgreSQL识别这个Python 3扩展?

谢谢

共有3个答案

贺光华
2023-03-14

该信息位于源安装包的Makefile中

我们需要libpython作为一个共享库。用Python

对于python窗口:

ifeq ($(PORTNAME), win32)

    pytverstr=$(subst .,,${python_version})
    PYTHONDLL=$(subst \,/,$(WINDIR))/system32/python${pytverstr}.dll

因此,书面回答是:

  • WINDIR is: C:\Windows
  • pytverstr在makefile中使用有一个参数来定义python的版本
  • PYTHONDLL是dll的位置

要检查安装的版本,我打开plpython3。位于C:\Program Files\PostgreSQL\9.4\lib中的dll(随环境更改路径)

使用记事本和搜索PyUnicode\u 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看标题过程语言

编辑2021-06-11

在系统上安装好的Python版本后,需要将其复制到C:\Windows\System32

用旧名称替换python版本不是一个好的解决方案,因为你可以使用librairie它不适用于这个版本。如果你知道风险,就这样做。所以如果你想要一个最新版本的python for plpython,编译它或者检查edb编译来检查它是否包含你需要的东西。你可以向教育局索取这些资料。

郎雅昶
2023-03-14

与我在Postgres 9.6 Windows 10中遇到的情况完全相同。PL/Python3U无法通过。

解决了这个问题:

安装Python34 64位Windows 10版本。复制蟒蛇34。作为Python33连接到c:\windows\system32的dll。dll和它的工作。

阴高刚
2023-03-14

将python34.dll文件复制到c:\windows\system 32并命名副本python33.dll

创建语言plpython3u应该没有问题。

 类似资料:
  • 我正在尝试将PostgreSQL配置为在我的rails应用程序中使用全文搜索,如本铁路广播中所述。 我使用的是一个全新的Ubuntu 12.04服务器,运行的是PostgreSQL 9.1.5,安装时使用的是apt get,使用的是ppa:pitti/PostgreSQL,使用的是precise。 尝试运行迁移时,以及在psql控制台中与对等postgres用户尝试相同的命令时,出现以下错误: 错

  • 我正在处理APK扩展文件,我查看了以下链接: 1)创建APK扩展文件的步骤 2)http://ankitthakkar90.blogspot.in/2013/01/apk-expansion-files-in-android-with.html 我已经从path sdk path/extras/google导入了market_许可、play_apk_扩展 play_apk_扩展包含三个项目down

  • 每个项目都是一个扩展包 一旦你的目录有一个 composer.json 文件,这个目录就是一个包。当你给一个项目添加一个 require 依赖时, 此时你正在创建一个依赖于其他包的包。 项目和扩展包唯一不同之处在于,项目是一个没有名称的包。 为了使该包可安装,你需要指定一个名称, 通过在 composer.json 中添加 name 属性: { "name": "acme/hello-wo

  • 我正试图安装一个PostgreSQL docker化服务,与plpython。我能够成功地构建映像,但是当我来运行容器时,我得到以下错误: 错误:无法打开扩展控制文件"/usr/share/postgresql/9.5/扩展/plpython3u.control":没有这样的文件或目录声明:创建扩展"plpython3u"; psql:/docker-entrypoint-initdb. d/cr

  • 所以我有两个集成测试类。我正在使用flyway测试扩展重置db。当我从IntelliJ单独运行测试类时,两个都通过了。然而,当我使用mvn clean install或在IntelliJ all test中一起运行它们时,TestClass2会出现异常并失败。 创建名为“flywayInitializer”的bean时出错,该bean在类路径资源[org/springframework/boot/

  • 问题内容: 我正在尝试创建一个扩展的自定义视图。这是我的班级定义文件 : 这是在我的ghostviewscreen.xml中: 现在,我在活动中进行了: 当被调用时,抛出一个异常: 谁能告诉我为什么会出现此错误?谢谢。 问题答案: 我想我弄清楚了为什么这没用。当我应该为两个参数“ Context,AttributeSet”的情况提供构造函数时,我只为一个参数“ context”的情况提供了构造函数