4

我有同样的问题在这里讨论过,但我没有评论答案,所以我开始新的问题。

我有到 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.
4

3 回答 3

2

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

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

  • 卸载的 PostgreSQL
  • 在“C:\PostgreSQL”中重新安装 PostgreSQL 注意我这次没有将 PostgreSQL 安装到“C:\Program Files”文件夹中
  • 设置环境PATH C:\PostgreSQL\9.4;C:\PostgreSQL\9.4\bin
  • 还要确保_pg.pyd存在于C:\Python27\Lib\site-packages
于 2015-02-20T14:26:52.603 回答
0

我遇到了同样的问题;只是为了在做你说的之前尝试一下,我更改了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 驱动程序的 dll 文件,

于 2017-06-26T05:27:44.153 回答
0

我在 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 中,但它导致了另一个错误:

  • “从 _pg 导入 * ImportError:DLL 加载失败:操作系统无法运行 %1。”

然后我检查了 Sysinternals 的 Process Monitor 发生了什么,发现 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 中都可以正常工作。

于 2020-09-10T06:31:49.900 回答