在Mountain Lion上安装psycopg2(brew + pip)

时间:2012-08-07 00:18:00

标签: python homebrew psycopg2 osx-mountain-lion

我正在尝试让psycopg2使用ML,默认的Python 2.7(2.7.2)。我通过自制软件安装了postgresql,用pip安装了psycopg2。 Postgres很高兴并且正在运行,PGAdmin3可以看到我制作的数据库。

但是当我运行python并尝试

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

现在sudo pip install psycopg2的输出并不完全干净。 Clang给出了一堆警告,但没有错误:

  

警告:编译期间未使用的参数:' - mno-fused-madd'
  警告:未使用的功能'Dprintf'   警告:隐式转换失去整数精度:'long'到'int'   警告:无符号表达式的比较&lt; 0总是假的   ld:警告:忽略文件/usr/local/Cellar/postgresql/9.1.4/lib/libpq.dylib,文件是为不支持的文件格式构建的(0xcf 0xfa 0xed 0xfe 0x 7 0x 0 0x 0 0x 1 0x 3 0x 0 0x 0 0x 0 0x 6 0x 0 0x 0 0x 0)这不是被链接的体系结构(i386):/ usr / local / Cellar / postgresql / 9.1.1 / lib / libpq.dylib

最后一个链接器警告让我担心,我想知道它是否再次出现旧的32-vs-64位Python问题。我试过旧的:

defaults write com.apple.versioner.python Prefer-32-Bit -bool yes

但没有骰子。

我的下一个想法是:强制brew将postgresql编译为x86_64,或者从brew安装python。我想要第一个选择,因为我有一些其他的软件(叹气)依赖于Apple的Python在PATH中的第一个。

有关如何使用brew将postgresql编译为64位的任何想法吗?

1 个答案:

答案 0 :(得分:2)

正如@Doughal指出的那样,我已经运行了 32 -bit Python,而且库需要64位。所以,用简单的

修复
defaults write com.apple.versioner.python Prefer-32-Bit -bool no