0

psycopg2をML、デフォルトのPython 2.7(2.7.2)で動作させようとしています。私はpostgresqlをhomebrew経由でインストールし、psycopg2をpipでインストールしました。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'警告:符号なし式の比較<0は常にfalseです
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.4/lib/libpq.dylib

その最後のリンカーの警告は私が心配していることです、そして私はそれが古い32対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ビットとしてコンパイルする方法はありますか?

4

1 に答える 1

2

@Doughalが指摘したように、私はすでに32ビットのPythonを実行しており、ライブラリは64ビットを必要としていました。だから、シンプルで修正

defaults write com.apple.versioner.python Prefer-32-Bit -bool no
于 2012-08-07T02:39:03.027 に答える