【问题标题】:ver.2 PyGreSQL ERROR: from _pg import * ImportError: DLL load failed: The specified module could not be foundver.2 PyGreSQL ERROR: from _pg import * ImportError: DLL load failed: 找不到指定的模块
【发布时间】:2015-04-22 02:57:51
【问题描述】:

我遇到了与here 讨论过的相同问题,但我没有评论答案,所以我开始新问题。

我有到 libpq.dll (C:\PostgreSql\lib) 的 PATH 方式,但它不能解决这个问题。

使用 Python 2.7.9 32 位、PostgreSQL 8.4、Win 8

Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
    import pg
  File "C:\Python27\lib\site-packages\pg.py", line 21, in <module>
from _pg import *
ImportError: DLL load failed: The specified module could not be found.

【问题讨论】:

  • P.S.如果您安装了 python 32bit、Postgres 64bit 并收到此消息。然后卸载python 32bit并安装python 64bit,您需要从站点包中删除PyGreSQL-5.0.dist-info并重新安装。这应该可以修复 dll 加载失败消息。

标签: python postgresql dllimport pygresql


【解决方案1】:

我在 Win10 上使用 Python 3.5 和 Python 3.8(都是 64 位)和 Postresql 12(也是 64 位)时遇到了同样的错误。 DLL 位置“c:\Program Files\PostgreSQL\12\bin”和“c:\Program Files\PostgreSQL\psqlODBC\bin”已添加到 PATH,但它导致另一个错误:

  • “from _pg import * ImportError: DLL load failed: The operating system cannot run %1.”

然后我从 Sysinternals 检查了进程监视器的情况,发现 libpg.dll 正在寻找其他 DLL。最后是以下文件:

  • libpq.dll
  • libssl-1_1-x64.dll
  • libcrypto-1_1-x64.dll

从“c:\Program Files\PostgreSQL\12\bin”文件夹复制到:

  • "c:\Users...\AppData\Local\Programs\Python\Python35"
  • "c:\Users...\AppData\Local\Programs\Python\Python38"

文件夹和现在“import pg”在两个版本的 Python 中都可以正常工作。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题;只是为了在做你说的之前尝试一下,我更改了PATH环境变量:我直接指定了PostgreSQL ODBC驱动程序的libpq.dll的整个目录路径(在其他相关目录中还有其他“libpqdll”)这发生在我的 Windows10 中:C:\Program Files\PostgreSQL\psqlODBC\bin .. 问题已解决.. 之前,我的 PATH 规范是 C:\Program Files\PostgreSQL,我认为驱动程序正在寻找 dll文件直接在此处和 1)当无法直接在此特定目录中找到(通过忽略子目录),2)或遇到其他不适用于驱动程序的“libpq.dll”时,它给出了错误消息.. 所以在这里我得出的结论是它在 PATH env.varible 中查找 ODBC DRIVER 的 dll 文件,所以我需要在 PATH 环境变量中直接指定我使用的 PostgreSQL 的 ODBC 驱动程序的目录 psqlODBC .. 以备将来需要我想写那些细节:)

    【讨论】:

      【解决方案3】:

      我在Win 8 上也遇到了同样的问题。我第一次在“C:\Program Files”中安装了PostgreSQL,并将环境PATH 设置为指向PostgreSQL 文件夹。我怀疑“C:\Program Files”文件夹的权限问题。

      我能够按照下面提到的步骤解决此问题。

      • 已卸载 PostgreSQL
      • 在 "C:\PostgreSQL" 中重新安装了 PostgreSQL 请注意,我这次没有将 PostgreSQL 安装到“C:\Program Files”文件夹中
      • 设置环境PATHC:\PostgreSQL\9.4;C:\PostgreSQL\9.4\bin
      • 还要确保C:\Python27\Lib\site-packages中存在_pg.pyd

      【讨论】:

      • 谢谢回复,现在可以了。对于我的配置,我添加了 C:\postgreSQL;C:\postgreSQL\bin;C:\Python27\Lib\site-packages;到路径
      • @Vena Vena - 如果它适合您,请标记为已解决。谢谢!
      • 在我的情况下,将 PostgreSQL 移动到“C:\PostgreSQL”是不够的,我在“C:\Program Files\”中安装了 Python,并且在重新安装之前没有让 PyGreSQL 工作“C:\Python37”中的 Python。
      • 还必须按照@UaT 的建议重新安装 Python。现在它工作正常
      猜你喜欢
      • 1970-01-01
      • 2018-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-05
      • 2012-08-08
      • 2023-04-01
      • 2020-12-04
      相关资源
      最近更新 更多