2021年6月30日水曜日

ERROR: Could not build wheels for cryptography which use PEP 517 and cannot be installed directly

ERROR: Could not build wheels for cryptography which use PEP 517 and cannot be installed directly

概要

macOS 上に paramiko をインストールしようとしたらタイトルのエラーに遭遇しました 対応方法を紹介します

環境

  • macOS 11.4
  • Python 3.8.3
  • paramiko 2.7.2

原因

どうやら全然関係ないところでエラーになっているようです paramiko は cryptography というライブラリに依存しているのですがそのライブラリがデフォルトで Rust のコンパイラを使っています

Rust のコンパイラがすでにインストールされていれば問題なくインストールできるかもしれないのですがインストールされていない場合は今回のエラーに遭遇するようです

エラー文の途中を見ると「error: can’t find Rust compiler」という文が表示されているのが確認できると思います

対策1: cryptography だけインストールしてみる

Rust コンパイラを使わないでビルドする方法もあるようです 以下の環境変数をセットして cryptography だけインストールできるか確認してみましょう

  • export CRYPTOGRAPHY_DONT_BUILD_RUST=1
  • pipenv install cryptography

対策2: openssl のビルドオプションを追加する

openssl も使っているので以下のように openssl のヘッダファイルなどのパスも指定してあげます 環境によってことなるので brew info openssl で確認しましょう

  • export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"
  • export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"
  • export PKG_CONFIG_PATH="/usr/local/opt/openssl@1.1/lib/pkgconfig"

再度 paramiko をインストールする

上記が成功したら再度 paramiko をインストールしてみましょう

  • pipenv install paramiko

参考サイト

0 件のコメント:

コメントを投稿