web-dev-qa-db-ja.com

ImportError:cryptography.hazmat.bindings._opensslという名前のモジュールがありません

CryptoUnavailableError:使用可能な暗号ライブラリがなく、oauth2clientからのインポート暗号の失敗。

リンクに上記のエラーが記載されています。 pyOpenSSLと暗号化を再インストールすることでそれを修正することができました。しかし、現在、次のエラーが発生しています。

ImportError: No module named cryptography.hazmat.bindings._openssl

ここで、_opensslはunix実行可能ファイル(_openssl.so)です。以下はインポートステートメントです

from cryptography.hazmat.bindings._openssl import ffi, lib

上記のコードは、暗号化モジュールのbindings.pyにあります。これらはすべて、oauth2clientを使用したgspread認証にリンクされています。私を助けてください。私はこれに苦労しています。

更新:この問題は、いくつかの依存関係の失敗が原因で発生しました。しかし、依存関係が失敗している場所を見つけることができませんでした。すべてのライブラリを上から再インストールしました。そのような問題は修正されました。

11
Prajapathy3165

この答えはつまらないように見えるかもしれませんが、これは私にとってうまくいったことです。私は実際にOSを再インストールしました。そうすれば、以前にインストールした他のすべてのライブラリが削除されました。それらのライブラリの1つは、暗号化ファイルとopensslに干渉する原因である可能性があります。上記のエラーの原因となっているモジュール/ライブラリを追跡できませんでした。 OSが再インストールされたら、このエラーが発生する前に実行した可能性のあるリンクを使用して、cyptography、opensslをインストールしました。

私のやり方を実行する前に、six.pyのバージョン1.9.0が/Library/Python/2.7/site-packagesと/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/libの両方にあることを確認してください/ python

私の道を通り抜けても、上記もやってください。

私はとても必死だったので、OSを再インストールしました。この決定に至ったのは、本番環境にある同じコードが開発では機能しないのに機能するためです。私はそのいくつかの依存関係エラーを理解しました。

0
Prajapathy3165

私はついにこれを手に入れました。それは私のために働いた:

pip uninstall pyopenssl
pip uninstall cryptography
pip install pyopenssl
pip install cryptography
11
zhangzhy2000

Venvを介してインストールすると、修正されました。

/opt/eff.org/certbot/venv/local/bin/pip install cryptography interface
2
rix

プロジェクトのルートパスに手動で暗号化ソースを追加する必要があります。

https://github.com/pyca/cryptography/tree/master/src

0
Davy

Scrapy for Anaconda3をインストールしたいときに、同じ問題が発生しました。

実際にツイストをインストールすると、これが壊れたと思います。このメッセージが原因で、pip/condaを使用しようとして失敗しました。

上記のzhangzhy2000の提案 https://stackoverflow.com/a/54389947/1137529 を見ましたが、失敗しました何かをインストールします。

実際に何が起こっているのか、SSLを処理するためのPythonモジュールがあったが、それは削除された。今(アップグレード後) Scrapy/Twistedの一部の依存関係)AnacondaはSSLを処理するためにOSに依存しています。

私がやったWindows10 64ビットの場合:

  1. Sasl-0.2.1-cp37-cp37m-win_AMD64.whlをインストールしました( https://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame から)。これは実際には私を助けませんでした。

  2. Win64OpenSSL-1_1_1b.exeをインストールしました-SSLを開きます( https://slproweb.com/products/Win32OpenSSL.html から)

  3. 走る pip3 install pyopenssl==19.0.0私のためにpyopensslと暗号化をインストールします。

(そして、ここでは関係のないねじれたスクレイプをインストールします)。

繰り返しになりますが、SSLのサポートはPythonから削除され、現在はOSに依存しているため、SSL用のOS固有のパッケージをインストールする必要があります。

0
alexsmail

この問題は、いくつかの依存関係の失敗が原因で発生しました。しかし、依存関係が失敗している場所を見つけることができませんでした。すべてのライブラリを上から再インストールしました。そのような問題は修正されました。

0
Prajapathy3165

/opt/eff.org/certbot/venv/local/lib64/python2.7に移動し、同じフォルダー内にdist-packagesからsite-packagesへのリンクを作成するだけです。 site-packagesがすでにここにある場合は、名前を変更する必要があります。お気に入り

rm -rf site-packages

ln -s dist-packages site-packages

0
Harish Bhardwaj

この問題が発生しました。最初に OpenSSL をインストールし、次にインクルードのOpenSSLを配置します。Python2.7用のMicrosoftVisual C++コンパイラ内のコンパイラにコピーされたフォルダの内容\ vc\include、libの内容をlib内のPythonインストールディレクトリにコピーします。opensll環境変数をgitに調整します。opensslのcmdを実行する場合は、OpenSSLインストールディレクトリに配置する必要があります。アンインストール暗号化をやり直して、再度インストールして、問題は解決しました!!

0
任红森

別の回避策:

apk add --no-cache py-cryptography

おかげで https://github.com/pyca/cryptography/issues/4264#issuecomment-392849235

0
trinchet

ファイル暗号化-2.0.3-cp36-cp36m-win_AMD64.whlをダウンロードします

実行します:

pip install C:/User/Download/cryptography-2.0.3-cp36-cp36m-win_AMD64.whl

それからそれは解決しました。

0
Creatint