【python入門】psycopg2のインストールエラーでハマりまくった件
こんにちは!
DB環境整えようと思ってpsycong2インストールしようとしたらエラーでハマりまくったので備忘録しておきます、、
使用環境
・python3.7.4
エラー内容
$pip3 install psycopg2
めちゃくちゃ長いので抜粋
ld: library not found for -lssl
clang: error: linker command failed with exit code 1 (use -v to see invocation)
error: command 'clang' failed with exit status 1
やったこと
どうやら ld: library not found for -lsslが怒られている内容らしい。長すぎて何が本音なのかわからなかった。
opensslが入ってないと言われているようだ。
・opensslインストール→もう入ってるよ!と言われたのでupdate
$brew install openssl
$brew upgrade openssl
まだ同じエラー
・パスの修正
こちらの記事を参考にさせていただきパスを通したけどまだだめ
https://qiita.com/mgr206/items/58cf00c83d08ade68523
・opensslのバージョン確認
$openssl version
Libre ssl *.*.*
→なんだこれは!
どうやらMacのバージョンによってはデフォルトのopensslがLibre sslというものになっているということ
こちらの記事を参照させていただきパス変更
https://qiita.com/moroi/items/53d60d1d6885795a0f6f
再起動したらようやくopensslになってくれました。
しかし!まだpsycopg2をインストールしようとすると同じエラー
英語サイトを翻訳しまくる数時間、、
結果
パス指定してインストールで解決。
env LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" pip3 install psycopg2
これだけ指定してあげないとインストールできないってどれだけ頑固なんだ。
まだわからないことだらけなのに先行き不安です、、
(2020.3追記)
opensslの情報は
$ brew info openssl
でみれます。
途中でバージョン変わりましたが、私の環境の場合
---------------略
For compilers to find openssl@1.1 you may need to set:
export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"
export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"
--------------略
が該当パスです。