2015-07-22 13 views
6

Obecnie próbuję zautomatyzować przesyłanie pojedynczego pliku (na razie) do Boxa z mojej automatyzacji w języku Python.ImportError: Brak modułu o nazwie cryptography.hazmat.backends - boxsdk na komputerze Mac

Używam kodu z witryny twórców skrzynek, która ma być "super łatwa w użyciu", ale pojawia się błąd (patrz tytuł powyżej), gdy próbuję uruchomić prosty program znaleziony na tej stronie: https://www.box.com/blog/introducing-box-python-sdk/. Dodałem mój identyfikator klienta, tajny klucz klienta i token programisty, a także dodałem ścieżkę do mojego pliku zip do przesłania i nadal otrzymuję powyższy błąd. Nie zmieniłem niczego poza tym.

Kod dla tych, którzy nie chcą, aby kliknąć w link :)

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

Mam zainstalowany program przy użyciu kryptografii PIP i easy_install po prostu mieć pewność, wraz z libffi i OpenSSL i OAuth2 prostu być bezpieczny i nic nie działa. Czy ktoś może mi pomóc?

Dzięki Gary

+0

Głosowałem za głosowaniem w nadziei, że jest to jakiś ogólny problem. Zauważ jednak, że dość trudno jest debugować konfiguracje runtime, które mają miejsce na twoim komputerze, więc nie postawiłbym zbyt wiele na uzyskanie odpowiedzi tutaj. Powodzenia! –

Odpowiedz

8

Błąd ten nie ma nic wspólnego z biblioteką boxsdk ale z jednym z jej zależnością: cryptography.

W większości przypadków dzieje się tak, ponieważ instalacja biblioteki cryptography nie powiodła się. W większości przypadków nie powiodło się, ponieważ libffi nie jest domyślnie instalowana na większości komputerów.

Jeśli używasz napar, tylko iść w terminalu i wpisz brew install libffi

Potem ponowna cryptography lub boxsdk z pip:

pip install cryptography --force-reinstall

+0

OP States libffi jest już zainstalowany. –

2

miałem dokładnie ten sam błąd przy próbie uruchomienia paramiko na AWS Lambda, która zależy od pycrypto. Naprawiłem go uruchamiając następujące zanim zrobiłem pip zainstalować dla każdego:

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

To wydawało się działać, ponieważ pip zainstalować z pycrypto szukał nagłówków, które nie może znaleźć.

+0

Jest to podobne do problemów, na które się natknąłem. Zainstalowałem wyżej wymienione pakiety i śledziłem ten post na blogu: aws.amazon.com/blogs/compute/scheduling-ssh-jobs-using-aws-lambda/ –

4

Wypróbuj to. Powodzenia!

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 
+0

Dzięki .., Perfect work. – rsp

+1

Cieszę się. Nie ma za co! – JayB

Powiązane problemy