Windows环境导入psycopg2遇ImportError:DLL加载失败求助
问题:导入psycopg2时出现DLL加载失败错误
执行import psycopg2时触发以下错误:
--------------------------------------------------------------------------- ImportError Traceback (most recent call last) Cell In[14], line 1 ----> 1 import psycopg2 File c:\Users\ricardo.torres\AppData\Local\Programs\Python\Python313\Lib\site-packages\psycopg2\__init__.py:51 1 """A Python driver for PostgreSQL 2 3 psycopg is a PostgreSQL_ database adapter for the Python_ programming (...) 17 TimeFromTicks, Timestamp, TimestampFromTicks 18 """ 19 # psycopg/__init__.py - initialization of the psycopg module 20 # 21 # Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> (...) 48 49 # Import the DBAPI-2.0 stuff into top-level module. ---> 51 from psycopg2._psycopg import ( # noqa 52 BINARY, NUMBER, STRING, DATETIME, ROWID, 53 54 Binary, Date, Time, Timestamp, 55 DateFromTicks, TimeFromTicks, TimestampFromTicks, 56 57 Error, Warning, DataError, DatabaseError, ProgrammingError, IntegrityError, 58 InterfaceError, InternalError, NotSupportedError, OperationalError, 59 60 _connect, apilevel, threadsafety, paramstyle, 61 __version__, __libpq_version__, 62 ) 65 # Register default adapters. 67 from psycopg2 import extensions as _ext ImportError: DLL load failed while importing _psycopg: 找不到指定的模块。
环境及已尝试操作
- Windows系统,已安装PostgreSQL
- 执行过
pip install psycopg2和pip install psycopg2-binary重装库,问题未解决
解决方案
1. 把PostgreSQL的bin目录加入系统PATH
psycopg2依赖PostgreSQL的libpq.dll文件,需确保PostgreSQL的bin目录(通常是C:\Program Files\PostgreSQL\<版本号>\bin)已添加到系统环境变量PATH:
- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
- 在「系统变量」中找到
Path,点击「编辑」 - 添加PostgreSQL的bin目录路径,保存后重启终端和Python环境,再尝试导入
2. 确保Python和PostgreSQL位数一致
如果Python是64位版本,PostgreSQL必须也是64位;32位Python对应32位PostgreSQL。位数不匹配会导致DLL加载失败,卸载不匹配版本后重新安装对应位数的程序。
3. 安装适配Python版本的psycopg2-binary
若当前Python版本(比如3.13)较新,最新版psycopg2-binary可能未适配,尝试安装指定兼容版本:
pip install psycopg2-binary==2.9.9
(可根据Python版本调整具体版本号,优先选择已适配目标Python版本的发布版)
4. 手动复制libpq.dll到psycopg2目录
找到PostgreSQL安装目录bin文件夹中的libpq.dll,复制到Python的site-packages\psycopg2目录(即错误提示中的c:\Users\ricardo.torres\AppData\Local\Programs\Python\Python313\Lib\site-packages\psycopg2),之后再尝试导入。
内容的提问来源于stack exchange,提问作者Ricardo Xavier Torres Aguilar
相关产品推荐
相关产品推荐

