19

Mac に python django dev セットアップがあり、El Capitan にアップグレードしたところです。

virtualenvにpsycopg2をインストールしましたが、サーバーを実行すると次のエラーが発生します-

django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: dlopen(/Users/aidan/Environments/supernova/lib/python2.7/site-packages/psycopg2/_psycopg.so, 2): Library not loaded: libssl.1.0.0.dylib
  Referenced from: /Users/aidan/Environments/supernova/lib/python2.7/site-packages/psycopg2/_psycopg.so
  Reason: image not found

virtualenvを再インストールしようとしました

pip install -f requirements.txt

そして、psycopg2をアップグレードしようとしました

pip uninstall psycopg2
pip install psycopg2

しかし、私はまだ同じエラーが発生しています。

また、シンボリックリンクを追加しようとしまし/usr/libたが、エルキャピタンの新しいルートレスのものでは許可されません-

$ sudo ln -s /Library/PostgreSQL/9.2/lib/libssl.1.0.0.dylib
 /usr/lib
ln: /usr/lib/libssl.1.0.0.dylib: Operation not permitted

だから/usr/local無駄に頑張った。

openssl のシステム バージョンは 1.0.2 のようです -

$ openssl version
OpenSSL 1.0.2d 9 Jul 2015

これを修正するにはどうすればよいですか?

4

6 に答える 6

23

私は次のことを試しました:

マシンにbrewをインストールしました。実行$ brew doctorすると、次のことを行うように提案されました。

$ sudo chown -R $(whoami):admin /usr/local

これが完了したら、次のことを再インストールpsycopg2して実行しました。

$ sudo ln -s /Library/PostgreSQL/9.3/lib/libssl.1.0.0.dylib /usr/local/lib/
$ sudo ln -s /Library/PostgreSQL/9.3/lib/libcrypto.1.0.0.dylib /usr/local/lib/

PostgreSQL のバージョンとパスに注意してください/usr/local/lib

これを行うと、再び作業セットアップに戻りました。

PS: 醸造の提案された手順はここでは関係ないかもしれませんが、許可の問題が発生していたため、これを掲載しました。ルートレス モードを無効にすることもできます。

于 2015-10-08T12:02:56.640 に答える
18

その理由は、いくつかの PostgreSQL ライブラリへの相対パスを使用する psycopg2 にあります。それを修正するために使用しました

sudo install_name_tool -change libpq.5.dylib /Library/PostgreSQL/9.4/lib/libpq.5.dylib /Library/Python/2.7/site-packages/psycopg2/_psycopg.so
sudo install_name_tool -change libcrypto.1.0.0.dylib /Library/PostgreSQL/9.4/lib/libcrypto.1.0.0.dylib /Library/Python/2.7/site-packages/psycopg2/_psycopg.so
sudo install_name_tool -change libssl.1.0.0.dylib /Library/PostgreSQL/9.4/lib/libssl.1.0.0.dylib /Library/Python/2.7/site-packages/psycopg2/_psycopg.so

相対パスを絶対パスに変換します。もちろん、psycopg2 を再インストールするたびにこれを行う必要があります。

于 2015-10-28T07:31:37.853 に答える
1

@ArtHarg ソリューションに基づいて、これを python 3.4、PostgreSQL 9.5、および OS X el capitan で使用しました。

sudo install_name_tool -change libpq.5.dylib /Library/PostgreSQL/9.5/lib/libpq.5.dylib /Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/psycopg2/_psycopg.so
sudo install_name_tool -change libcrypto.1.0.0.dylib /Library/PostgreSQL/9.5/lib/libcrypto.1.0.0.dylib /Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/psycopg2/_psycopg.so
sudo install_name_tool -change libssl.1.0.0.dylib /Library/PostgreSQL/9.5/lib/libssl.1.0.0.dylib /Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/psycopg2/_psycopg.so
于 2016-07-09T20:09:09.557 に答える
0

私はEl Capitan10.11.5 と3.5.1 を実行していますが、単純なコンソールまたは PyCharm 内でpythonインポートしようとすると同じエラーが発生しました。psycopg2ルートに到達することでこれを修正できました:

sudo su -

次に、2 つのライブラリをシンボリックにリンクします。

ln -s /Library/PostgreSQL/9.5/lib/libssl.1.0.0.dylib /usr/local/lib
ln -s /Library/PostgreSQL/9.5/lib/libcrypto.1.0.0.dylib /usr/local/lib

その後、次connection errorのメッセージで終了しました。

psycopg2.OperationalError: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

私のPostgreSQLインストールは/tmpのソケットでリッスンしていたので、接続を許可するために別のシンボリックリンクが必要でした:

ln -s /tmp/.s.PGSQL.5432 /var/pgsql_socket/
于 2016-06-18T06:41:00.830 に答える