执行pycrypto时出错

时间:2015-02-11 21:16:05

标签: python odoo pycrypto

我使用odoo,我想安装paybox模块:这一个:https://bitbucket.org/anybox/anybox_paybox/ 为此:该模块需要pycrypto才能工作

所以,我在linux服务器(ubuntu)中安装了pycrypto

  1. git clone https://github.com/dlitz/pycrypto.git
  2. ./configure
  3. python setup.py build
  4. python setup.py install
  5. 我做了这个测试:python setup.py test 结果没有错误,但问题出现在此文件中://paybox_signature.py //

    # coding: utf-8
    import urllib
    import base64
    from Crypto.PublicKey import RSA
    from Crypto.Signature import PKCS1_v1_5
    from Crypto.Hash import SHA
    
    class Signature():
    
    def verify(self, signature, msg, key):
        """ check if the signature is correct according to the public key path         given
            and the message """
        msg = self.remove_sign(msg)
        key = RSA.importKey(key)
        ha = SHA.SHA1Hash().new(msg)
        verifier = PKCS1_v1_5.new(key)
        signature = urllib.unquote(signature)
        signature = base64.b64decode(signature)
        return verifier.verify(ha, signature)
    
        def remove_sign(self, msg):
        """ remove signature arg from the given string"""
        pos = msg.find('&Signature')
        if pos == -1:
            return msg
        return msg[:pos] 
    

    当我执行文件的这一行时:

    from Crypto.PublicKey import RSA
    

    - >好吧没有错误

    当我这样做时

    from Crypto.Signature import PKCS1_v1_5
    

    - > Traceback(最近一次调用最后一次):     文件“”,第1行,in     ImportError:没有名为Signature

    的模块

    我不知道为什么 所有的模块都在那里为什么python犯这个错误!我真的不知道 我需要你的帮助谢谢

2 个答案:

答案 0 :(得分:1)

可能是pycrypto软件包安装问题。

尝试

sudo easy_install pycrypto

然后重新启动系统。

您也可以结帐api of pycrypto

如果您使用的是Mac OS,请参阅更多讨论here

答案 1 :(得分:0)

这是一个古老的问题,但对于那些仍在寻找答案并绊倒在这个页面上的人来说。您可以从pycrypto dist下载pyCrypto,但我建议" pip install pyCrypto"因为它简单而且更好。