2011-08-09 32 views
0

最近Mac OS X Lionにアップグレードして、psycopg2をPython 2.6で再び動作させようとしています。以前のサイトでPythonを32ビット以上実行するように指示する指示(ここではhttp://favosdream.blogspot.com/2009/09/make-psycopg2-and-readline-work-in-snow.htmlのような場所が見られる)は運がない。でも、アーチ-i386パイソンを使用して32ビットへのpythonを強制しようとすると、まだ私にエラーを与えている:Mac OS X Lion Psycopg2:シンボルが見つかりません:_PQbackendPID

symbol not found: _PQbackendPID 
    Referenced from: /Library/Python/2.6/site-packages/psycopg2/_psycopg.so 
    Expected in: flat namespace 
+0

ライオンはさらに64ビットなのでなぜそんなに – Mark

答えて

1

あなたは/usr/bin/python2.6にアップルが提供するのPython 2.6を使用している場合は、arch -i386 python2.6を試してみましたか?しかし、まだpsycopg2の32ビット版とPostgreSQLクライアントライブラリを実行している場合は、新しい64ビットまたは64ビット/ 32ビットのユニバーサルバージョンをインストールするのがよいでしょう。 MacPortsはそれを助けることができます。

+0

これはアップデートです:arch -i386 pythonが動作し、私はpsycopg2をうまくインポートできます。しかし、 'arch -i386 python manage.py runserver'と入力してdjangoサーバーを実行しようとすると、インポートに失敗します。 djangoを起動しようとしているときにarch引数を取っていないと思われます – mikec

+0

別のPythonサブプロセスが起動され、デフォルトで64ビットになっている可能性があります。 Appleが提供するPython 2.6を使用している場合は、/ usr/bin/pythonを使用する場合は、特別なApple環境変数 'export VERSIONER_PYTHON_VERSION = 2.6'と' export VERSIONER_PYTHON_PREFER_32_BIT = yes'を設定することで問題を回避できます。 '。 PythonについてはAppleのmanページ( 'man python')を参照してください。しかし、あなたはおそらくアップグレードによって長期的には良いでしょう。 –

+0

ああ、ああ!他の人の質問に従って、 '/ usr/bin/python'をシンボリックリンクで上書きしてしまった場合、上記の' export'の提案はうまくいきません。マジックはAppleの特別な '/ usr/bin/python'プログラムによって処理されると私は信じています。 –

2

Snow Leopard/10.6.8でもこの問題が発生しましたが、かなり激しい契約の途中で半減しました。楽しくない。私はa)すべてのpostgresのバージョンを完全に削除してリブートすること、b)psycopg2のインストールをすべて完全に削除すること、c)システムのpythonを2.7にアップグレードすること、d)virtualenvとpipを再インストールすることDMGインストーラからはpostgres 9.1のインストールから始めて、このページの指示に従って)右のPythonのバージョンでは、その後、E:

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 

グッド:

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

結局それは、この簡単でした運!

関連する問題