web-dev-qa-db-fra.com

ImportError: aucun module nommé cryptography.hazmat.backends - boxsdk sur Mac

J'essaie actuellement d'automatiser le téléchargement d'un seul fichier (pour l'instant) vers Box depuis mon Python automation).

J'utilise le code du site Web des développeurs Box qui est censé être "super facile à utiliser" mais j'obtiens une erreur (voir le titre ci-dessus) lorsque j'essaie d'exécuter le programme simple trouvé sur cette page: https://www.box.com/blog/introducing-box-python-sdk/ . J'ai ajouté mon ID client, mon secret client et mon jeton de développeur, et ajouté le chemin d'accès à mon fichier Zip à télécharger, et je continue à obtenir l'erreur ci-dessus. Je n'ai rien changé au-delà de cela.

Code pour ceux qui ne veulent pas cliquer sur le lien :)

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()

J'ai installé le programme de cryptographie en utilisant pip ET easy_install juste pour être sûr, avec libffi et openssl et oauth2 juste pour être sûr et rien ne fonctionne. Quelqu'un peut-il m'aider?

Merci, Gary

11
Gary Behan

Cette erreur n'a rien à voir avec la bibliothèque boxsdk mais avec une de ses dépendances: cryptography.

La plupart du temps, cela se produit car l'installation de la bibliothèque cryptography a échoué. La plupart du temps, il a échoué car libffi n'est pas installé par défaut sur la plupart des ordinateurs.

Si vous utilisez brew, allez simplement dans votre terminal et tapez brew install libffi

Réinstallez ensuite cryptography ou boxsdk avec pip:

pip install cryptography --force-reinstall

14
ohe

Essayez ceci. Bonne chance!

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

J'ai eu exactement la même erreur en essayant d'exécuter paramiko sur AWS Lambda, qui dépend de pycrypto. Je l'ai corrigé en exécutant ce qui suit avant de faire l'installation de pip pour chacun:

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

Cela semblait fonctionner parce que l'installation par pip de pycrypto cherchait des en-têtes qu'il ne pouvait pas trouver.

3
Darren