Python 在Mountain Lion(brew&x2B;pip)上安装psycopg2
我试图让psycopg2在ML上工作,默认的Python 2.7(2.7.2)。我通过自制安装了postgresql,并使用pip安装了psycopg2。Postgres正在愉快地启动和运行,PGAdmin3可以看到我制作的db 但是当我运行python并尝试Python 在Mountain Lion(brew&x2B;pip)上安装psycopg2,python,homebrew,psycopg2,osx-mountain-lion,Python,Homebrew,Psycopg2,Osx Mountain Lion,我试图让psycopg2在ML上工作,默认的Python 2.7(2.7.2)。我通过自制安装了postgresql,并使用pip安装了psycopg2。Postgres正在愉快地启动和运行,PGAdmin3可以看到我制作的db 但是当我运行python并尝试 import psycopg2 我得到: Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Lib
import psycopg2
我得到:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Python/2.7/site-packages/psycopg2/__init__.py", line 67, in <module>
from psycopg2._psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID
ImportError: dlopen(/Library/Python/2.7/site-packages/psycopg2/_psycopg.so, 2): Symbol not found: _PQbackendPID
Referenced from: /Library/Python/2.7/site-packages/psycopg2/_psycopg.so
Expected in: flat namespace
in /Library/Python/2.7/site-packages/psycopg2/_psycopg.so
但是没有骰子
我的下一个想法是:强制brew将postgresql编译为x86_64,或者从brew安装python。我喜欢第一个选择,因为我还有其他一些软件(叹气),这取决于苹果的Python是第一个
如何使用brew使postgresql编译为64位?正如@Doughal指出的,我已经在运行32位Python了,而库需要64位。所以,用一个简单的
defaults write com.apple.versioner.python Prefer-32-Bit -bool no
关于忽略
libpq.dylib
的ld:warning
说明链接的体系结构是i386
,这意味着您的python似乎已经是32位了,而postgres是64位。不知道为什么它会打印出一堆十六进制而不是一个架构名称,不过。。。。您可以使用文件/usr/local/ceral/postgresql/9.1.4/lib/libpq.dylib
@Dougal I'm get/usr/local/ceral/postgresql/9.1.4/lib/libpq.5.4.dylib:Mach-O 64位动态链接共享库x86_64
@Dougal Ah!将默认写入
切换为否
解决了问题。谢谢我被调换了。
defaults write com.apple.versioner.python Prefer-32-Bit -bool no