You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask连接PostgreSQL时缺失libpq.5库的报错问题

Flask连接PostgreSQL缺失libpq.5库的解决方法

错误日志

回溯(最近的调用最后):
文件 "/Users/noelsjacob/Desktop/Projects/pgflask/main.py",第3行,在<module>中
    app = create_app()
          ^^^^^^^^^^^^
文件 "/Users/noelsjacob/Desktop/Projects/pgflask/Mautourco/__init__.py",第10行,在create_app中
    db.init_app(app)
文件 "/Users/noelsjacob/.local/share/virtualenvs/pgflask-3P3nCHJ0/lib/python3.11/site-packages/flask_sqlalchemy/extension.py",第326行,在init_app中
    engines[key] = self._make_engine(key, options, app)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
文件 "/Users/noelsjacob/.local/share/virtualenvs/pgflask-3P3nCHJ0/lib/python3.11/site-packages/flask_sqlalchemy/extension.py",第614行,在_make_engine中
    return sa.engine_from_config(options, prefix="")
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
文件 "/Users/noelsjacob/.local/share/virtualenvs/pgflask-3P3nCHJ0/lib/python3.11/site-packages/sqlalchemy/engine/create.py",第804行,在engine_from_config中
    return create_engine(url, **options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
文件 "<string>",第2行,在create_engine中
文件 "/Users/noelsjacob/.local/share/virtualenvs/pgflask-3P3nCHJ0/lib/python3.11/site-packages/sqlalchemy/util/deprecations.py",第283行,在warned中
    return fn(*args, **kwargs)  # type: ignore[no-any-return]
           ^^^^^^^^^^^^^^^^^^^
文件 "/Users/noelsjacob/.local/share/virtualenvs/pgflask-3P3nCHJ0/lib/python3.11/site-packages/sqlalchemy/engine/create.py",第601行,在create_engine中
    dbapi = dbapi_meth(**dbapi_args)
            ^^^^^^^^^^^^^^^^^^^^^^^^
文件 "/Users/noelsjacob/.local/share/virtualenvs/pgflask-3P3nCHJ0/lib/python3.11/site-packages/sqlalchemy/dialects/postgresql/psycopg2.py",第669行,在import_dbapi中
    import psycopg2
文件 "/Users/noelsjacob/.local/share/virtualenvs/pgflask-3P3nCHJ0/lib/python3.11/site-packages/psycopg2/__init__.py",第51行,在<module>中
    from psycopg2._psycopg import (                     # noqa
导入错误:dlopen(/Users/noelsjacob/.local/share/virtualenvs/pgflask-3P3nCHJ0/lib/python3.11/site-packages/psycopg2/_psycopg.cpython-311-darwin.so, 0x0002): 未加载库: '@rpath/libpq.5.dylib'
引用自: '/Users/noelsjacob/.local/share/virtualenvs/pgflask-3P3nCHJ0/lib/python3.11/site-packages/psycopg2/_psycopg.cpython-311-darwin.so'
原因: 尝试路径: '/opt/homebrew/lib/libpq.5.dylib' (不存在), '/opt/homebrew/lib/libpq.5.dylib' (不存在), '/usr/local/lib/libpq.5.dylib' (不存在), '/usr/lib/libpq.5.dylib' (不存在)

解决步骤

  • 安装PostgreSQL客户端库
    用Homebrew安装包含libpq的PostgreSQL工具包:

    brew install postgresql
    

    安装完成后,libpq.5.dylib会被放置在/opt/homebrew/lib目录下。

  • 修复库路径(已安装但仍报错时)
    如果已安装PostgreSQL但路径未生效,执行强制链接命令:

    brew link --force postgresql
    

    或临时设置环境变量让系统定位到库:

    export DYLD_LIBRARY_PATH=/opt/homebrew/lib:$DYLD_LIBRARY_PATH
    

    若要永久生效,将上述环境变量添加到shell配置文件(如~/.zshrc或~/.bash_profile):

    echo 'export DYLD_LIBRARY_PATH=/opt/homebrew/lib:$DYLD_LIBRARY_PATH' >> ~/.zshrc
    source ~/.zshrc
    
  • 重新安装psycopg2
    之前安装的psycopg2可能基于缺失的库编译,卸载后重新安装预编译版本更省心:

    pip uninstall psycopg2
    pip install psycopg2-binary
    

内容的提问来源于stack exchange,提问作者Noel S Jacob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 00:40:05