Ошибка при выполнении pycrypto

Я работаю с odoo и хочу установить модуль paybox: этот: https://bitbucket.org/anybox/anybox_paybox/ Для этого: для работы этого модуля требуется pycrypto

Итак, я установил pycrypto на сервер linux (ubuntu)

  1. git clone https://github.com/dlitz/pycrypto.git
  2. ./configure
  3. python setup.py build
  4. python setup.py install

и я сделал этот тест: 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, в ImportError: нет модуля с именем Signature

Я не знаю, почему все модули есть, почему python делает эту ошибку !! на самом деле я не знаю Пожалуйста, мне нужна ваша помощь Спасибо


person user3854643    schedule 11.02.2015    source источник


Ответы (2)


Возможно проблема с установкой пакета pycrypto.

попробуй с

sudo easy_install pycrypto

а затем перезагрузите вашу систему.

Вы также можете проверить api pycrypto

Если вы используете Mac OS, см. дополнительные обсуждения здесь

person Bhavesh Odedra    schedule 12.02.2015
comment
Я попробовал это, и он генерирует эту ошибку: Traceback (последний последний вызов): Файл /usr/local/bin/easy_install, строка 5, в ‹module› из pkg_resources import load_entry_point Файл /usr/lib/python2.7/dist- packages/pkg_resources.py, строка 2711, в ‹module› parse_requirements(requires), файл Environment() /usr/lib/python2.7/dist-packages/pkg_resources.py, строка 584, в разрешить поднять DistributionNotFound(req) pkg_resources.DistributionNotFound: setuptools›=0.7 - person user3854643; 13.02.2015

Это старый вопрос, но для людей, которые все еще ищут ответ и натыкаются на эту страницу. Вы можете скачать pyCrypto с pycrypto dist, но я рекомендую "pip install pyCrypto "как это просто и лучше.

person Harry    schedule 17.10.2016