web-dev-qa-db-ja.com

ロードされていないpsycopg2ライブラリのインポート:libssl.1.0.0.dylib

コマンドを実行しようとすると:

import psycopg2

エラーが表示されます:

ImportError: dlopen(/Users/gwulfs/anaconda/lib/python2.7/site-packages/psycopg2/_psycopg.so, 2): Library not loaded: libssl.1.0.0.dylib
  Referenced from: /Users/gwulfs/anaconda/lib/python2.7/site-packages/psycopg2/_psycopg.so
  Reason: image not found

これまでのところ、brew install opensslと(幸運なしに)参照している:

psycopg2インストールエラー-ライブラリがロードされていません:libssl.dylib

http://joshuakehn.com/2013/10/13/Postgresapp-and-psycopg2-on-OS-X.html

Psycopg2イメージが見つかりません

38
Gideon

システムライブラリdirsのシンボリックリンクで遊ぶ代わりに、$DYLD_FALLBACK_LIBRARY_PATHは、anacondaライブラリを含めます。例えば:

export DYLD_FALLBACK_LIBRARY_PATH=$HOME/anaconda/lib/:$DYLD_FALLBACK_LIBRARY_PATH
71
X.L.

EDIT:潜在的に危険です、最初にコメントを読んでください!

以下のより安全な回答を参照してください: https://stackoverflow.com/a/30726895/308315


あなたが投稿してから約1時間後にこの問題に出くわしました。 Mac OS X Yosemite、Python 2.7、およびPostgresqlアプリを使用しています。

デフォルトで動作しないシンボリックリンクが設定されているようです(またはトラブルシューティング中に導入しました)。最初に修正して、誤ったリンクを削除します。

$ Sudo rm /usr/lib/libssl.1.0.0.dylib
$ Sudo rm /usr/lib/libcrypto.1.0.0.dylib

次に、それらを再リンクします(YOURUSERNAMEをお使いのMacユーザー名に置き換えます。各ステップを完了してディレクトリを確認するには、tabを使用すると便利です):

$ Sudo ln -s /Users/YOURUSERNAME/anaconda/lib/libssl.1.0.0.dylib /usr/lib
$ Sudo ln -s /Users/YOURUSERNAME/anaconda/lib/libcrypto.1.0.0.dylib /usr/lib

あなたのバージョンはアナコンダにあるので、他のソリューションはあなたのために機能しなかったと思います。

30
Scott Brenstuhl

頭を壁に数時間ぶつけた後、次の2つのソリューションが機能することが保証されます。

オプション1これは環境変数をいじらずに問題を解決します。これをシェルで実行します。

brew install --upgrade openssl
brew unlink openssl && brew link openssl --force

ブーム!これにより、libsslおよびlibcrypto/usr/localのシンボリックリンクがアップグレードされます。 import psycopg2はチャームのように機能するようになりました。

オプション2何らかの理由でusr/localの現在のシンボリックリンクを維持する場合は、シェルで次のコマンドを実行します。

export DYLD_FALLBACK_LIBRARY_PATH=$HOME/anaconda/lib/:$DYLD_FALLBACK_LIBRARY_PATH

上記の$HOME/anaconda/libを実際のlibパスに置き換えてください。私の場合、これは$HOME/miniconda2/envs/ALi/libでした。

これは、現在いるシェル/ bashセッションでのみ機能します。変更を永続的にするには、~/.bash_profileまたは~/.bashrcファイルにexportステートメントを追加します。

思考: IMO#1はこの問題に対処する適切な方法ですが、シンボリックリンクを修正するよりも環境変数で作業することを好む人のために#2を残しました(たとえば、ソフトウェアがある場合)古いopensslファイルのバージョンに依存しています)。

20
alichaudry

Homebrewがopensslリンクを強制することを許可しなかった後、以下がうまくいきました:

pip install --global-option=build_ext \
            --global-option="-I/usr/local/opt/openssl/include" \
            --global-option="-L/usr/local/opt/openssl/lib" psycopg2

(このインストールはmacOSのvirtualenvで成功しました)

13
NSTJ

conda install psycopgは私のために動作します。次のパッケージを更新します。次のパッケージが更新されます。

conda:      3.19.1-py27_0 --> 4.0.5-py27_0
openssl:    1.0.2f-0      --> 1.0.2g-0
pip:        8.0.2-py27_0  --> 8.1.0-py27_0
setuptools: 19.6.2-py27_0 --> 20.2.2-py27_0
wheel:      0.26.0-py27_1 --> 0.29.0-py27_0
12
jackyen_2000

上記のXLの答えに関連して、すでにpipを使用しているときはAnacondaを使用したくなかったので、私に役立ったPostgresライブラリへのパスを与えました(MacではPostgreSQL.appを使用しています) OS 10.10)...

export DYLD_FALLBACK_LIBRARY_PATH=/Library/PostgreSQL/9.5/lib:$DYLD_FALLBACK_LIBRARY_PATH
5
Jim Bob

Scott Brennstuhlの答えを少し変える必要がありました。1。壊れたシンボリックリンクを削除します。

$ Sudo rm /usr/lib/libssl.1.0.0.dylib
$ Sudo rm /usr/lib/libcrypto.1.0.0.dylib
$ Sudo rm /usr/lib/libpq.5.dylib
  1. Postgresに含まれるドライバーと再リンクします。
$ Sudo ln -s   /Applications/Postgres.app/Contents/Versions/9.4/lib/libssl.1.0.0.dylib /usr/lib    
$ Sudo ln -s /Applications/Postgres.app/Contents/Versions/9.4/lib/libcrypto.1.0.0.dylib /usr/lib
$ Sudo ln -s /Applications/Postgres.app/Contents/Versions/9.4/lib/libpq.5.dylib  /usr/lib
4
tyton

セットアップの趣味はOPとは少し異なりました。MacではPostgres.appを使用しており、virtualenv内にいます。しかし、症状は似ていました。

私にとって、これはローカルでPostgres.appを9.3から9.5に更新した直後に発生し、エラーはpsycopg2libssl.1.0.0.dylibパスが古い9.3データディレクトリの場所を指していることを明確に示しました(このエラーで参照されたimage?)。 ENVに奇妙なものを追加したり、シンボリックリンクを削除したりすることの影響が、私にとって間違いなく正しいとは思えませんでした。 psycopg2をアンインストールしてから再インストールすることで、それが機能していたときと同じように解決しました-非常に危険ではないもの:

 # In my virtualenv
 pip uninstall psycopg2
 pip install psycopg2

それから私はすべて良かったです!

3
cwnewhouse

ロードされていないライブラリを解決するには、次の手順を実行します:libssl.1.0.0.dylibエラー/ usr/local/Cellarディレクトリにopensslがある場合

  1. Sudo cp /usr/local/Cellar/openssl/<<version>>/lib/libssl.1.0.0.dylib/usr/lib

  2. 手順1を実行した後、まだライブラリがロードされていない場合:libcrypto.1.0.0.dylibエラー。以下をせよ
    sudo cp /usr/local/Cellar/openssl/<<version>>/lib/libcrypto.1.0.0.dylib/usr/lib

2
yottabytt

同様の問題を引き起こしていたpip install psycopg2を試しました。次に、動作するconco install psycopg2を試しました!また、使用しているpipがanaconda(which pip)に属していることを確認してください

1

私はMacでこの問題を抱えていたので、ln -sを試してln:/usr/lib/libssl.1.0.0.dylib:操作を許可しませんでした。代わりに私のために働いたのは、単にpsycopg2-binaryをインストールすることです:pip install psycopg2-binary

インストール済みpsycopg2-binary-2.8. version

0
ajouhari

私はMac OS Sierraを使用しています:このエラーが発生しました:

 Library not loaded: libssl.1.1.dylib

このライブラリを見つけました

 /Library/PostgreSQL/11/lib

私はインターネットでこのソリューションを見つけました:

 export DYLD_LIBRARY_PATH=/Library/PostgreSQL/11/lib

しかし、これは永続的な解決策ではありません。サーバーを再起動するたびに上記のコマンドを実行する必要があるため。

0
Surajkumar_cse

1日以上試した後、私は以下の解決策に行きました。

  • [email protected]を再インストールする
  • csrutilを無効にする->無効にする方法をグーグルitして、何かをコピーできるようにする
    to/usr/lib
  • libssl.1.0.0.dylibを/ usr/libにコピーしました-Sudo cp /usr/local/Cellar/openssl/1.0.2s/lib/libssl.1.0.0.dylib/usr/lib
  • libcrypto.1.0.0.dylibを/ usr/libにコピーしました-Sudo cp /usr/local/Cellar/openssl/1.0.2s/lib/libcrypto.1.0.0.dylib/usr/lib

同様に、ライブラリがロードされていない場合:libssl.1.0.0.dylibの問題に直面した場合、バージョンをopensslの1.0から1.1に変更し、libssl.1.0の代わりにlibssl.1.1を、libcryptoの代わりにlibcrypto.1.1をコピーします.1.0.0

Macでpsycopg2を楽しむ準備ができました。

0
pyAddict