mik*_*kec 3 python macos psycopg2 osx-lion
我最近升级到 Mac OS X Lion 并试图让 psycopg2 再次与 python 2.6 一起工作。以前站点上的说明强制 Python 以 32 位以上运行(参见此处的位置:http : //favosdream.blogspot.com/2009/09/make-psycopg2-and-readline-work-in-snow.html)不给任何运气。即使尝试使用 arch -i386 python 将 python 强制为 32 位,仍然给我错误:
symbol not found: _PQbackendPID
Referenced from: /Library/Python/2.6/site-packages/psycopg2/_psycopg.so
Expected in: flat namespace
Run Code Online (Sandbox Code Playgroud)
最近在尝试将 psycopg2 (2.8.2) 导入 python3 (3.5.3) 项目时遇到了这个问题。运行 macOS Sierra (10.12.6),使用 PostgreSQL 9.6 + pgAdmin3。
TLDR:安装 SQL 程序和安装程序创建的动态链接时要小心
据我所知,libpq.5.dylib与 psycopg2 (2.8.2) 兼容所需的 libpq 动态库 ( ) 是 libpq 5.9+ ( libpq.5.9.dylib)
安装 postgres(或其他 postgres 相关程序)后,它们可能会创建/usr/lib指向新安装的 .dylib 文件的动态链接,这些文件不一定是您想要的。
例如,/usr/lib/libpq.5.dylib可能指向./Applications/pgAdmin3.app/Contents/Frameworks/libpq.5.dylib,即 5.6 版;_PQsslAttribute在这种情况下,旧版本的 libpq 动态库可能不包含某些函数,例如。
对我有用的解决方案:
移动/usr/local/lib在向上$PATH(因为usr/lib可能只可写的根),则在创建动态链接/usr/local/lib到指向/Library/PostgreSQL/9.6/lib/libpq.5.9.dylib这样的:
cd /usr/local/lib
ln -s /Library/PostgreSQL/9.6/lib/libpq.5.9.dylib ./libpq.5.dylib
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6264 次 |
| 最近记录: |