初心者プログラマのひとり勉強部屋

若葉マークのプログラマー☺️

【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"

--------------略

が該当パスです。