我有一个使用Crypto.Hash的脚本,但是导入失败并显示以下错误:

ImportError: No module named Crypto.Hash

如果我打印sys.path列表,则在我的sys.path中,存在此条目(以及其他条目):
/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/pycrypto-2.6

如果我打开上面的路径,则没有pycrypto-2.6目录。

如何加载pycrypto 2.6?

如果我从命令行导入运行python的Crypto.Hash,则可以正常工作

我必须指出,App Engine支持pycrypto,它包含在this list中。

此外,我在app.yaml文件中包含了该模块:
libraries:
- name: webapp2
  version: "2.5.2"
- name: pycrypto
  version: latest
- name: lxml
  version: "2.3"
- name: ssl
  version: latest

如果我在appengine上的生产环境中发送代码,则该代码可以正常工作,问题出在我的系统中,我应该下载pycrypto的编译版本,并将其放在appengine可以使用的地方

最佳答案

似乎在MAC OSX上发生了一个问题,我设法解决的是以下问题:

首先,您需要知道pycripto的安装位置,正在运行

sudo pip install pycrypto

您安装库或获取安装路径



然后,考虑到这是在appengine上的生产中不会发生的问题,我这样做是:
try:
    from Crypto.Hash import SHA
except ImportError:
    import sys
    sys.path.append('/[mypath]/anaconda/lib/python2.7/site-packages')
    from Crypto.Hash import SHA # requires PyCrypto

关于python - 应用程序引擎: ImportError: No module named Crypto.哈希,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29350204/

10-09 17:16