ImportError:在Mac上没有名为cryptography.hazmat.backends的模块 - boxsdk

时间:2015-07-22 16:51:00

标签: python macos openssl cryptography

我目前正在尝试从Python自动化中自动将单个文件(现在)上传到Box。

我正在使用Box开发者网站上的代码,该代码应该是“超级易用”但当我尝试运行此页面上的简单程序时,我收到错误(请参阅上面的标题):{ {3}}。我添加了我的客户端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和easy_install安装了加密程序,以及libffi和openssl以及oauth2只是为了安全而且没有任何作用。任何人都可以帮助我吗?

谢谢, 加里

3 个答案:

答案 0 :(得分:11)

此错误与boxsdk库无关,但与其有一个依赖关系:cryptography

大多数情况下,这是因为cryptography库安装失败。大多数情况下,它失败了,因为默认情况下大多数计算机上都没有安装libffi。

如果您正在使用brew,只需进入终端并输入brew install libffi

即可

然后使用cryptography重新安装boxsdkpip

pip install cryptography --force-reinstall

答案 1 :(得分:7)

试一试。祝你好运!

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

答案 2 :(得分:3)

尝试在AWS Lambda上运行paramiko时出现完全相同的错误,这取决于pycrypto。我在为每个人执行pip安装之前运行以下命令来修复它:

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

这似乎有效,因为pycrypto的pip安装正在寻找它找不到的标题。