将m2crypto导入谷歌应用引擎

问题描述:

嘿,我有点麻烦将m2crypto导入谷歌应用引擎。我想我知道这个问题,但不知道如何解决它。无论如何,这是我的目录结构。将m2crypto导入谷歌应用引擎

mysite/ 
    app.yaml 
    main.py 
    urls.py 
    ... 
    M2Crypto/ 
     __init.py__ (I think the problem is here) 
     EVP.py 
     ... 
    SWIG/ 
     (there is no __init.py___ file here) 
     _m2crypto.i 
     ... 

当我这样做from M2Crypto import EVP,我得到的是说<type 'exceptions.ImportError'>: No module named __m2crypto的错误消息。此错误位于__init.py__文件中,它在第22行尝试import __m2crypto。但M2Crypto目录中没有__m2crypto文件。

我正在使用M2Crypto的0.21.1版本,只将M2Crypto和SWIG复制到我的应用程序中。我也尝试将M2Crypto-0.21.1.tar.gz中的每个文件复制到我的应用程序中,但这也不起作用。提前致谢。

+0

你编译过源代码吗?它看起来像它需要一个共享库,必须从python包装器以外进行编译。 – jcollado 2012-01-12 17:11:05

+0

我不这么认为,只是解压缩M2Crypto-0.21.1.tar.gz并取出M2Crypto和SWIG目录。我用另一个包(gdata)完成了这个工作,并且工作正常。 – mrmo123 2012-01-12 17:16:25

+0

有人刚告诉我在我的其他问题(http://*.com/questions/8776385/rsa-encryption-routines-for-google-app-engine-python/8799470#comment11036794_8799470)m2crypto包含C代码,并赢得'在GAE上工作。感谢您的帮助 – mrmo123 2012-01-12 17:21:20

看起来好像m2crypto有几个要求不适用于App Engine。你的应用程序是sandboxed,所用的所有库必须是纯Python。

你没有说明你实际上想要做什么,但是请注意PyCrypto是included with App Engine。您也可能想使用URLFetch服务。

+0

感谢您的回复。我试图让谷歌应用程序引擎为amazon cloudfront制作已签名的网址。到目前为止,我只知道一个教程(http://*.com/questions/6549787/getting-started-with-secure-aws-cloudfront-streaming-with-python),它通过M2Crypto来完成。 – mrmo123 2012-01-12 17:39:48