IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaçage autre langage Python Discussion :

ImportError: No module named util


Sujet :

Interfaçage autre langage Python

  1. #1
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    630
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 630
    Points : 234
    Points
    234
    Par défaut ImportError: No module named util
    Bonjour,
    quand je lance mon programme DH.py ( ce dernier wrappe l'API d'OpenSSL sur le calcul des paramètre diffie Hellman ), j'obtiens l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Traceback (most recent call last):
      File "DH.py", line 5, in <module>
        from util import genparam_callback
    ImportError: No module named util
    Voici le code source. j'ai lancé le programme à partir d'un sous-repertoire /home/ikuzar/work/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
     
    """M2Crypto wrapper for OpenSSL DH API.
     
    Copyright (c) 1999-2003 Ng Pheng Siong. All rights reserved."""
     
    from util import genparam_callback
    import BIO, Err, m2
     
    class DHError(Exception): pass
     
    m2.dh_init(DHError)
     
    class DH:
     
        """
        Object interface to the Diffie-Hellman key exchange
        protocol.
        """
     
        m2_dh_free = m2.dh_free
     
        def __init__(self, dh, _pyfree=0):
            assert m2.dh_type_check(dh)
            self.dh = dh
            self._pyfree = _pyfree
     
        def __del__(self):
            if getattr(self, '_pyfree', 0):
                self.m2_dh_free(self.dh)
     
        def __len__(self):
            assert m2.dh_type_check(self.dh), "'dh' type error"
            return m2.dh_size(self.dh)
     
        def __getattr__(self, name):
            if name in ('p', 'g', 'pub', 'priv'):
                method = getattr(m2, 'dh_get_%s' % (name,))
                assert m2.dh_type_check(self.dh), "'dh' type error"
                return method(self.dh)
            else:
                raise AttributeError
     
        def __setattr__(self, name, value):
            if name in ('p', 'g'):
                raise DHError, 'set (p, g) via set_params()'
            elif name in ('pub','priv'):
                raise DHError, 'generate (pub, priv) via gen_key()'
            else:
                self.__dict__[name] = value
     
        def _ptr(self):
            return self.dh
     
        def check_params(self):
            assert m2.dh_type_check(self.dh), "'dh' type error"
            return m2.dh_check(self.dh)
     
        def gen_key(self):
            assert m2.dh_type_check(self.dh), "'dh' type error"
            m2.dh_generate_key(self.dh)   
     
        def compute_key(self, pubkey):
            assert m2.dh_type_check(self.dh), "'dh' type error"
            return m2.dh_compute_key(self.dh, pubkey)
     
        def print_params(self, bio):
            assert m2.dh_type_check(self.dh), "'dh' type error"
            return m2.dhparams_print(bio._ptr(), self.dh)
     
     
    def gen_params(plen, g, callback=genparam_callback):
        return DH(m2.dh_generate_parameters(plen, g, callback), 1)
     
     
    def load_params(file):
        bio = BIO.openfile(file)
        return load_params_bio(bio)
     
     
    def load_params_bio(bio):
        return DH(m2.dh_read_parameters(bio._ptr()), 1)
     
     
    def set_params(p, g):
        dh = m2.dh_new()
        m2.dh_set_p(dh, p)
        m2.dh_set_g(dh, g)
        return DH(dh, 1)
     
     
    #def free_params(cptr):
    #    m2.dh_free(cptr)
     
     
    DH_GENERATOR_2 = m2.DH_GENERATOR_2
    DH_GENERATOR_5 = m2.DH_GENERATOR_5
    Est ce que quelqu'un aurait une idée comment resoudre ce problème ?
    Merci d'avance

  2. #2
    Membre confirmé Avatar de cboudy
    Profil pro
    Ingénieur informatique industrielle
    Inscrit en
    Avril 2006
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur informatique industrielle
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 407
    Points : 627
    Points
    627
    Par défaut
    tu as codé ça toi même ou tu l'as récupéré quelque part ?

  3. #3
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    630
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 630
    Points : 234
    Points
    234

  4. #4
    Membre confirmé Avatar de cboudy
    Profil pro
    Ingénieur informatique industrielle
    Inscrit en
    Avril 2006
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur informatique industrielle
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 407
    Points : 627
    Points
    627
    Par défaut
    dans ce cas si tu veux que ça marche il faut récupérer tout le répertoire ou carrément installer le module M2Crypto

  5. #5
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    630
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 630
    Points : 234
    Points
    234
    Par défaut
    J'ai installé M2crypto avec apt-get ( j'utilise ubuntu 10.10) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    apt-get install python-m2crypto.
    la librairie est apparement bien installée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    dpkg -l python-m2crypto
    | État=Non/Installé/fichier-Config/dépaqUeté/échec-conFig/H=semi-installé/W=attend-traitement-déclenchements
    |/ Err?=(aucune)/besoin Réinstallation (État,Err: majuscule=mauvais)
    ||/ Nom                                                Version                                            Description
    +++-==================================================-==================================================-====================================================================================================================
    ii  python-m2crypto                                    0.20.1-1ubuntu4                                    a crypto and SSL toolkit for Python
    Quand je poste l'erreur sur google, je n'ai pas trouvé de commentaire dessus...

  6. #6
    Membre confirmé Avatar de cboudy
    Profil pro
    Ingénieur informatique industrielle
    Inscrit en
    Avril 2006
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur informatique industrielle
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 407
    Points : 627
    Points
    627
    Par défaut
    reprenons : c'est toujours la même erreur ? tu lances DH.py depuis ton répertoire perso ou un autre script ?

  7. #7
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonjour,

    Pourquoi lancer DH depuis un autre répertoire que /usr/share/pyshared/M2Crypto/ ? Comment voulais vous qu'il retrouve util.py alors que celui ci fait parti du package M2Crypto ? A la limite si vous aviez dans DH.py from M2Crypto.util import genparam_callback oui.
    Pour importer DH (et le reste) vous devez faire un import M2Crypto (seulement en Python 2.x. M2Crypto n'est pas compatible 3.x)
    Si vous avez a l'utiliser tout seul (ce dont je ne vois pas l'utilité) un simple from M2Crypto import DH suffit.

    @+

Discussions similaires

  1. pylab cassé:ImportError: No module named _thread
    Par jean-pat dans le forum Calcul scientifique
    Réponses: 1
    Dernier message: 05/12/2011, 11h10
  2. ImportError: No module named libnetmd
    Par dubis dans le forum Bibliothèques tierces
    Réponses: 3
    Dernier message: 22/08/2011, 12h32
  3. ImportError: No module named PyQt4
    Par Sephiroth Lune dans le forum PyQt
    Réponses: 31
    Dernier message: 22/03/2011, 09h03
  4. reload() génère un "ImportError: No module named"
    Par ProgVal dans le forum Général Python
    Réponses: 0
    Dernier message: 13/05/2010, 14h03
  5. ImportError: No module named _md5
    Par kedare dans le forum Général Python
    Réponses: 3
    Dernier message: 25/07/2007, 21h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo