コマンドを実行しようとすると:
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
システムライブラリdirsのシンボリックリンクで遊ぶ代わりに、$DYLD_FALLBACK_LIBRARY_PATH
は、anacondaライブラリを含めます。例えば:
export DYLD_FALLBACK_LIBRARY_PATH=$HOME/anaconda/lib/:$DYLD_FALLBACK_LIBRARY_PATH
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
あなたのバージョンはアナコンダにあるので、他のソリューションはあなたのために機能しなかったと思います。
頭を壁に数時間ぶつけた後、次の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ファイルのバージョンに依存しています)。
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
で成功しました)
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
上記のXLの答えに関連して、すでにpipを使用しているときはAnacondaを使用したくなかったので、私に役立ったPostgresライブラリへのパスを与えました(MacではPostgreSQL.appを使用しています) OS 10.10)...
export DYLD_FALLBACK_LIBRARY_PATH=/Library/PostgreSQL/9.5/lib:$DYLD_FALLBACK_LIBRARY_PATH
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
$ 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
セットアップの趣味はOPとは少し異なりました。MacではPostgres.app
を使用しており、virtualenv
内にいます。しかし、症状は似ていました。
私にとって、これはローカルでPostgres.app
を9.3から9.5に更新した直後に発生し、エラーはpsycopg2
のlibssl.1.0.0.dylib
パスが古い9.3データディレクトリの場所を指していることを明確に示しました(このエラーで参照されたimage
?)。 ENV
に奇妙なものを追加したり、シンボリックリンクを削除したりすることの影響が、私にとって間違いなく正しいとは思えませんでした。 psycopg2
をアンインストールしてから再インストールすることで、それが機能していたときと同じように解決しました-非常に危険ではないもの:
# In my virtualenv
pip uninstall psycopg2
pip install psycopg2
それから私はすべて良かったです!
ロードされていないライブラリを解決するには、次の手順を実行します:libssl.1.0.0.dylibエラー/ usr/local/Cellarディレクトリにopensslがある場合
Sudo cp /usr/local/Cellar/openssl/<<version>>/lib/libssl.1.0.0.dylib/usr/lib
手順1を実行した後、まだライブラリがロードされていない場合:libcrypto.1.0.0.dylibエラー。以下をせよ
sudo cp /usr/local/Cellar/openssl/<<version>>/lib/libcrypto.1.0.0.dylib/usr/lib
同様の問題を引き起こしていたpip install psycopg2を試しました。次に、動作するconco install psycopg2を試しました!また、使用しているpipがanaconda(which pip)に属していることを確認してください
私はMacでこの問題を抱えていたので、ln -sを試してln:/usr/lib/libssl.1.0.0.dylib:操作を許可しませんでした。代わりに私のために働いたのは、単にpsycopg2-binaryをインストールすることです:pip install psycopg2-binary
インストール済みpsycopg2-binary-2.8. version
私はMac OS Sierraを使用しています:このエラーが発生しました:
Library not loaded: libssl.1.1.dylib
このライブラリを見つけました
/Library/PostgreSQL/11/lib
私はインターネットでこのソリューションを見つけました:
export DYLD_LIBRARY_PATH=/Library/PostgreSQL/11/lib
しかし、これは永続的な解決策ではありません。サーバーを再起動するたびに上記のコマンドを実行する必要があるため。
1日以上試した後、私は以下の解決策に行きました。
同様に、ライブラリがロードされていない場合: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を楽しむ準備ができました。