【问题标题】:Unable to use pycrypto lib in Google App Engine无法在 Google App Engine 中使用 pycrypto lib
【发布时间】: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 中的那个,这仍然会给您带来错误。

标签: python google-app-engine


【解决方案1】:

在本地执行pip install pycrypto(或您通常用来安装新模块的任何操作),您就可以使用pycryto。我知道这与您使用第三方库的常规方式相矛盾,这些第三方库据称已经内置在 GAE 中,但 pycrypt 模块似乎并不适用。

【讨论】:

  • 感谢您的建议,但我已经这样做了。它没有用。安装进入 Python lib Site-Package 文件夹。我确实找到了使用硬方法的解决方案。以后有时间会写下我的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多