【发布时间】:2015-02-13 09:22:53
【问题描述】:
全部。我无法使用 GAE 附带的 pycrypto lib。 在我的 app.yaml 中:
libraries:
- name: pycrypto
version: latest
在我的代码中:
from Crypto.Cipher import AES
这会给我一个找不到模块的错误。似乎这将发生在不在 C:\Program Files\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\lib 下的任何模块上
但该软件包列在 GAE 支持的库下,例如 webapp2 和其他我没有此类问题的库。 https://cloud.google.com/appengine/docs/python/tools/libraries27
旧版本存在问题,应该修复。问题编号 1627。
该问题已由 1.7.4 修复。我在 1.9.17。
谁也遇到过这个问题,可以提供解决方案吗?谢谢!
【问题讨论】:
-
它在生产中有效吗?如果是这样,那么只需在系统级别本地安装它,lxml 也会发生同样的事情。
-
它可能会在生产中工作,但对我来说进行本地导入会很愚蠢,然后在我需要上传时必须更改它以进行生产。无论如何,我找到了一个不好但确实有效的解决方案。 numpy 和其他人也是如此。稍后会写出我的解决方案。
-
基本上,它与 sys.path 有关。您必须在您的 GAE 代码中打印出来才能确定 GAE 在哪里寻找它。就我而言,它是 C:\Program Files\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\lib\pycrypto-2.6\Crypto。所以我最终做的是 pip install。然后从 python sitepackages 文件夹中获取它。然后复制到特定路径。顺便说一句,站点包中“Crypto”的文件夹名称不能与您的GAE引擎中的文件夹名称相同。否则,当您导入它时,它可能会使用 site-package 中的那个,这仍然会给您带来错误。