40

psycopg2を使用して virtualenvにインストールしようとするとpip、コンパイルは問題ないように見えます。「psycopg2 のインストールに成功しました」と表示されますが、python インタープリター (virtualenv 内) にインポートしようとすると、エラーが示されます。

  File "<stdin>", line 1, in <module>
  File "/Users/me/sites/env/trackmap/lib/python2.7/site-packages/psycopg2/__init__.py", line 67, in <module>
    from psycopg2._psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID
ImportError: dlopen(/Users/me/sites/env/trackmap/lib/python2.7/site-packages/psycopg2/_psycopg.so, 2): Library not loaded: libssl.dylib
  Referenced from: /Users/me/sites/env/trackmap/lib/python2.7/site-packages/psycopg2/_psycopg.so
  Reason: Incompatible library version: _psycopg.so requires version 1.0.0 or later, but libssl.0.9.8.dylib provides version 0.9.8

pip問題は、数週間前のように、他の仮想環境で使用して正常にインストールpostgresqlし、Mac で動作させることです。これはコンパイラの問題なのだろうか?shortens from 64-bit to 32-bitpsycopg2 のインストール中にいくつかの警告が表示されました。私のコンパイラはi686-apple-darwin11-llvm-gcc-4.2、mac os x lion のデフォルトのコンパイラです。

インストールに関連する投稿をいくつか見psycopg2ますが、それらのほとんどは仮想環境にインストールすることで解決されます。それで...誰か私に提案をしてもらえますか?ありがとうございました!本当に感謝。

ps psycopg2 のインストールのコンパイル ログが必要な場合はお知らせください。長すぎるため、ここには貼り付けませんでした。

4

9 に答える 9

99

libssl.dylibバージョンが古すぎるというエラーはありますか?

私のMacでは、エラーはそれでlibssl.dylibあり、libcrypto.dylib古すぎてpyscopgを使用できません。mac が使用するopensslパッケージは 0.98 ですが、pyscopg は 1.0.0 以降のバージョンが必要です。

私の解決策はこれです:

  1. brewからopensslをインストールする

    $ brew install openssl
    
  2. コピーlibssl.1.0.0.dylibしてlibcrypto.1.0.0.dylibから/usr/local/Cellar/openssl/1.0.1c/usr/lib/

    $ cd /usr/local/Cellar/openssl/1.0.1c/lib
    $ sudo cp libssl.1.0.0.dylib libcrypto.1.0.0.dylib /usr/lib/
    
  3. /usr/libディレクトリで、ソフトリンクを作成しlibssl.dyliblibcrypto.dylib. 既存のリンクを削除する必要がある場合があります。

    $ sudo rm libssl.dylib libcrypto.dylib
    $ sudo ln -s libssl.1.0.0.dylib libssl.dylib
    $ sudo ln -s libcrypto.1.0.0.dylib libcrypto.dylib
    
于 2012-08-11T04:20:29.923 に答える