web-dev-qa-db-ja.com

ImportError:cryptography.hazmat.backendsという名前のモジュールはありません-Macのboxsdk

私は現在、私のPythonオートメーションからBoxへの単一のファイルのアップロード(今のところ)を自動化しようとしています。

「非常に使いやすい」と思われるBox開発者Webサイトのコードを使用していますが、このページにある単純なプログラムを実行しようとするとエラー(上記のタイトルを参照)が表示されます。 https://www.box.com/blog/introducing-box-python-sdk/ クライアントID、クライアントシークレット、開発者トークンを追加し、アップロードするZipファイルへのパスを追加しましたが、上記のエラーが引き続き発生します。私はそれ以上何も変えていません。

リンクをクリックしたくない人のためのコード:)

from boxsdk import Client, OAuth2

oauth = OAuth2(
    client_id="YOUR_CLIENT_ID",
    client_secret="YOUR_CLIENT_SECRET",
    access_token="YOUR_DEVELOPER_TOKEN",
)

client = Client(oauth)
shared_folder = client.folder(
    folder_id='0',
).create_subfolder('shared_folder')

uploaded_file = shared_folder.upload('/path/to/file')
shared_link = shared_folder.get_shared_link()

念のために、pip AND easy_installを使用して暗号化プログラムをインストールしました。libffiとopensslおよびoauth2を安全に使用するため、何も機能しません。誰も私を助けることができますか?

ありがとう、ゲイリー

11
Gary Behan

このエラーは、boxsdkライブラリとは関係ありませんが、依存関係の1つであるcryptographyとは関係ありません。

ほとんどの場合、cryptographyライブラリのインストールが失敗したために発生します。ほとんどの場合、ほとんどのコンピューターにはデフォルトでlibffiがインストールされていないため失敗しました。

Brewを使用している場合は、ターミナルに移動してbrew install libffi

次に、cryptographyまたはboxsdkを含むpipを再インストールします。

pip install cryptography --force-reinstall

14
ohe

これを試してください。幸運を!

rm -rf /usr/local/lib/python2.7/dist-packages/fabric/fabric-home-assistant

Sudo apt-get install libffi-dev libssl-dev

Sudo pip install cryptography --force-reinstall
8
JayB

AWS Lambdaでparamikoを実行しようとしたときにまったく同じエラーが発生しました。pycryptoに依存しています。それぞれに対してpipをインストールする前に、次を実行して修正しました。

Sudo yum install gcc libffi-devel python-devel openssl-devel

Pycryptoのpipインストールが見つけられなかったヘッダーを探していたので、これはうまくいくように見えました。

3
Darren