首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >_PQbackendPID OS X Lion Psycopg2:未找到符号

_PQbackendPID OS X Lion Psycopg2:未找到符号
EN

Stack Overflow用户
提问于 2011-08-09 23:54:55
回答 4查看 6.5K关注 0票数 3

我最近升级到了Mac,并正在尝试让psycopg2再次与Python2.6一起工作。在以前的网站上,强制Python在32位以上运行的指令(见这里:http://favosdream.blogspot.com/2009/09/make-psycopg2-and-readline-work-in-snow.html )没有给任何运气。即使尝试使用arch -i386将python强制转换为32位,python仍然给我错误:

代码语言:javascript
运行
复制
symbol not found: _PQbackendPID
  Referenced from: /Library/Python/2.6/site-packages/psycopg2/_psycopg.so
  Expected in: flat namespace
EN

回答 4

Stack Overflow用户

发布于 2019-06-12 06:04:53

最近在尝试将psycopg2 (2.8.2)导入到python3 (3.5.3)项目中时遇到了此问题。使用PostgreSQL 9.6 + pgAdmin3运行macOS Sierra (10.12.6)。

SQL :安装程序时要小心&安装程序创建的动态链接

据我所知,与psycopg2 (2.8.2)兼容的所需的libpq动态库(libpq.5.dylib)是libpq 5.9+ (libpq.5.9.dylib)

安装postgres (或其他postgres相关程序)时,它们可能会在/usr/lib中创建指向新安装的.dylib文件的动态链接,这些文件可能不一定是您想要的文件。

例如,/usr/lib/libpq.5.dylib可能指向5.6版本的./Applications/pgAdmin3.app/Contents/Frameworks/libpq.5.dylib;较早版本的libpq动态库可能不包括某些函数,比如本例中的_PQsslAttribute

为我工作的解决方案:

$PATH中将/usr/local/lib向上移动(因为usr/lib可能只对根用户可写),然后在/usr/local/lib中创建一个动态链接,指向/Library/PostgreSQL/9.6/lib/libpq.5.9.dylib,如下所示:

代码语言:javascript
运行
复制
cd /usr/local/lib
ln -s /Library/PostgreSQL/9.6/lib/libpq.5.9.dylib ./libpq.5.dylib
票数 6
EN

Stack Overflow用户

发布于 2012-05-15 08:10:37

我在Snow Leopard/10.6.8上也遇到了这个问题,只是在一个相当紧张的合同中损失了半天时间。一点也不好玩。我最终修复了它,a)完全删除所有postgres版本并重新启动,b)完全删除我安装的所有psycopg2 (使用locate和be ruthless),c)将我的系统python升级到2.7,d)重新安装virtualenv和pip,以便它们指向正确的python版本,然后e)按照本页上的说明,从dmg安装程序开始安装postgres 9.1:

http://hardlifeofapo.com/psycopg2-and-postgresql-9-1-on-snow-leopard/

归根结底,事情很简单:

代码语言:javascript
运行
复制
virtualenv your_virtual_env_name
. your_virtual_env_name/bin/activate
export ARCHFLAGS="-arch i386 -arch x86_64"
export PATH=$PATH:/Library/PostgreSQL/9.1/bin
pip install psycopg2

祝好运!

票数 3
EN

Stack Overflow用户

发布于 2011-08-10 01:11:18

如果你在/usr/bin/python2.6中使用苹果提供的Python2.6,你有没有尝试过arch -i386 python2.6?但是,如果您仍在运行32位版本的psycopg2和PostgreSQL客户端库,那么现在可能是安装更新的64位或64位/32位通用版本的好时机。MacPorts可以帮助你做到这一点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6999105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档