私は講義の1つのプロジェクトに取り組んでいます。使用中のpostgresqlデータベースを操作するには、psycopg2パッケージをダウンロードする必要があります。残念ながら、psycopg2をpipインストールしようとすると、次のエラーが表示されます。
ld: library not found for -lssl
clang: error: linker command failed with exit code 1 (use -v to see invocation)
error: command '/usr/bin/clang' failed with exit status 1
ld: library not found for -lssl
clang: error: linker command failed with exit code 1 (use -v to see invocation)
error: command '/usr/bin/clang' failed with exit status 1
なぜこれが起こっているのか知っていますか? Sierraが一部のパッケージをサポートしていないためですか?前もって感謝します!
コマンドラインツールをインストールしてこれを修正しました
xcode-select --install
次に、Homebrewを介してopensslをインストールし、homebrewでインストールしたopensslをpipに手動でリンクします:
env LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" pip install psycopg2
macOS Sierra 10.12.1で
以下でインストールしてみてください:
pip install psycopg2-binary
Xcode開発者ツールのインストール/更新
xcode-select --install
Postgresパスのクエリ
find / -name pg_config 2>/dev/null
Psycopg2をインストールし、ステップ2で取得したパスを使用します。私のものは「/usr/local/Cellar/postgresql/9.5.0/bin/pg_config」でした
PATH=$PATH:/usr/local/Cellar/postgresql/9.5.0/bin/ pip install psycopg2
これは私にとってはうまくいきます(端末上で):
find / -name pg_config 2>/dev/null
次に、パスを追加します。
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.5/bin/
oSバージョン:MacOs Sierra
これがお役に立てば幸いです。
Pipenv install psycopg2を使用して同様の問題が発生した場合:
ld:ライブラリが見つかりません-lssl '、' clang:エラー:リンカコマンドが終了コード1で失敗しました(呼び出しを確認するには-vを使用してください) '、 "エラー:コマンド' clang 'は終了ステータス1で失敗しました"、'
---------------------------------------- '、
上記のすべての推奨事項を試しましたが、どれも機能しませんでした。私は数ヶ月前に別のvirtualenvでこの問題に直面し、これが psycopg2バージョンの問題 であることについて何かを読んだことを思い出しました。そこで、2.7.1と2.8.3でインストールしようとしましたが、どちらもまだ失敗しました。どういうわけかバージョン2.7.7は機能しました:
pipenv install psycopg2==2.7.7
実際に何が起こっているのかを理解するために、これをさらに調査する時間があればいいのにと思います。しかし、今のところはそうではなく、これはうまくいきました。
古いですが、pipenvを使用している人のために、依存関係グラフを見てpipenv graph --reverse
とそれに気づくにはpsycopg2-binary==2.8.2
。ランニング pipenv install psycopg2-binary
は問題を解決しました。
Opensslパッケージがインストールされていないようです。インストールしてpip install
もう一度。私はmacosユーザーではありませんが、 brew
はそのプラットフォームでのパッケージ管理を簡素化すると考えています。
また、Python開発およびpostgresql開発パッケージをインストールする必要があります。
brew install postgresql
Postgresqlが存在する場合、次を実行します。
brew upgrade postgresql
Sudo pip install psycopg2
Venvで:
env LDFLAGS='-L/usr/local/lib -L/usr/local/opt/openssl/lib
-L/usr/local/opt/readline/lib' pip install psycopg2==2.8.3