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

Déploiement/Installation Python Discussion :

Problème d'importation Sax2


Sujet :

Déploiement/Installation Python

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 18
    Points : 9
    Points
    9
    Par défaut Problème d'importation Sax2
    Bonjour,
    Je suis sur mac et cela fait 2 semaines que je cherche à importer le module Sax2 du pack xml de python (à la fois sur 2.7 et 3.2).

    je tape :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    from xml.dom.ext.reader import Sax2
    et je reçois ce message d'erreur sur les 2 versions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ImportError: No module named ext.reader
    A priori, xml est installé étant donné que quand je tape "import xml" il le récupère comme il faut.

    Quelqu'un aurai une solution pour régler ce problème en passant par le terminal (UNIX) ou en installant un fichier.

    Merci d'avance

  2. #2
    Membre averti Avatar de Pymento
    Homme Profil pro
    Ingé. Info.
    Inscrit en
    Janvier 2008
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingé. Info.

    Informations forums :
    Inscription : Janvier 2008
    Messages : 366
    Points : 329
    Points
    329
    Par défaut
    logiquement c'est
    Et sax2 est en fait la version 2 de la lib sax
    Memento Quia Pulvis Es, Et In Pulverem ReverteriS

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    Donc normalement si j'utilise sax je doit pouvoir utiliser mon script tel quel ou est ce qu'il faut que je change des choses ?

    En bref : est ce que l'utilisation de Sax est la même que Sax2 ?

  4. #4
    Membre averti Avatar de Pymento
    Homme Profil pro
    Ingé. Info.
    Inscrit en
    Janvier 2008
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingé. Info.

    Informations forums :
    Inscription : Janvier 2008
    Messages : 366
    Points : 329
    Points
    329
    Par défaut
    En prenant en compte les fonctions deprecated et nouvelles, mais tu dois pouvoir t'y retrouver facilement. Après le mieux c'est de le lancer avec l'import de sax, (en ayant pris soin de le mettre à jour bien sur) et de laisser ton python t'indiquer gentiment où ça foire !
    Memento Quia Pulvis Es, Et In Pulverem ReverteriS

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    J'ai laissé python me trouver où ça va pas avec important juste sax. Il comprend pas Sax2. J'ai vraiment la sensation que ce script n'est pas finit (c'est pas à moi c'est un site qui l'a mis à disposition pour fouiller dans leur base^^).

    Si il n'est effectivement pas finit, Comment le finir^^?

    Je te l'envoie tel quel (je t'ai mais l'endroit où ça merde en commentaire) :

    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
    import urllib2
    import sys
    from xml.dom.ext.reader import Sax2
    from xml.dom.NodeFilter import NodeFilter
    from xml import xpath
    # ------------------ FUNCTIONS ------------------
     
    class PsicquicService:
        def __init__(self, name, restUrl):
            self.name = name
            self.restUrl = restUrl
    def readURL(url):
        try:
            fileHandle = urllib2.urlopen(url)
            content = fileHandle.read()
            fileHandle.close()
        except IOError:
            print 'Cannot open URL' % url
            content = ''
        return content
     
     
    def readActiveServicesFromRegistry():
        registryActiveUrl = 'http://www.ebi.ac.uk/Tools/webservices/psicquic/registry/registry?action=ACTIVE&format=xml'
        content = readURL(registryActiveUrl)
     
        ###################C'est à cet endroit là que ça merde. Il compile la fonction mais quand je la lance avec les commandes du bas, ça merde
     
        reader = Sax2.Reader()
        doc = reader.fromString(content)
        serviceNodes = xpath.Evaluate('service', doc.documentElement)
        services = []
        for serviceNode in serviceNodes:
            name = serviceNode.getElementsByTagName('name')[0].firstChild.nodeValue
            restUrl = serviceNode.getElementsByTagName('restUrl')[0].firstChild.nodeValue
            service = PsicquicService(name, restUrl)
            services.append(service)
        return services
     
     
    def getXrefByDatabase(line, database):
       fields = line.split('|')
       for field in fields:
           parts = field.split(':')
           db = parts[0]
           value = parts[1].split('(')[0]
           if database == db:
               return value
       else:
        # if no db found, return the first field
            return fields[0]
     
     
    def queryPsicquic(psicquicRestUrl, query, offset, maxResults):
        psicquicUrl = psicquicRestUrl + 'query/' + query + '?firstResult=' + str(offset) + '&maxResults=' + str(maxResults);
        print '\t\tURL: ' + psicquicUrl
        psicquicResultLines = readURL(psicquicUrl).splitlines()
        for line in psicquicResultLines:
            cols = line.split('\t')
            print '\t' + getXrefByDatabase(cols[0], 'uniprotkb') + ' interacts with ' + getXrefByDatabase(cols[1], 'uniprotkb')
     
    # -----------------------------------------------------
     
    query = 'BBC1'
     
     
    services = readActiveServicesFromRegistry()
     
    for service in services:
        print 'Service: ' + service.name + ' ================================================================== '
        queryPsicquic(service.restUrl, query, 0, 200)
        print '\n'

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut

    Quelques recherches sur Google laissent penser que le Sax2 du module xml.dom.ext.reader est installé avec PyXML qui n'est plus maintenu.

    Questions:
    1. Vous souhaitez installer un package qui dépend de cette bibliothèque?
    2. Vous voulez utiliser l'API Sax pour un nouveau développement?


    Bon courage,
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    Je connais pas trop tout ce qui est package de python (le fonctionnement). En fait on m'a demandé d'automatiser le recherche sur cette base de donnée (c'est un stage de master^^). Le plus simple pour moi c'est d'utiliser ce script (faire un programme java c'est trop long...)

    1. Installer un package dépendant de la bibliothèque ça signifierai quoi ?
    2. J'ai pas prévu de faire d'autres programme python pendant mon stage donc normalement c'est à usage unique

    Il manquerai quoi concrètement pour que le programme fonctionne ?

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par Glorfindel555 Voir le message
    Il manquerai quoi concrètement pour que le programme fonctionne ?
    Est ce que c'est un script que vous avez écrit?

    Sinon, la chose "fonctionne" quelque part et "utilise" une version de Python peut être ancienne et des bibliothèques externes qui vont avec.
    Si oui, pourquoi utiliser un SAX2 autre que celui qui vient avec Python via import xml.sax?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    Non justement c'est pas moi qui l'ai fait. Je t'avais marqué que c'est ceux qui s'occupe de la base qui ont mis ce script à disposition pour interroger leur base.

    Voilà la page : http://code.google.com/p/psicquic/wi...honCodeSamples

    Ils parlent un accès REST. Je sais pas ce que c'est.

    Sinon il parlent nul part de package spéciaux (à part PyXML) donc je pense pas qu'il y ai des choses à ajouter au fonctionnement. Et le truc c'est que quand j'importe ext.reader il le trouve pas et quand j'importe tout XML, il le trouve pas non plus.

    J'ai vu sur un exemple d'utilisation qu'autour de la ligne avec sax2 il y avais des lignes avec des fonctions comme create_parse() qui vient des outils sax de XML.

    T'en pense quoi ?

  10. #10
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par Glorfindel555 Voir le message
    T'en pense quoi ?
    Je ne connais pas ce logiciels mais après le parcours en diagonale du site, c'est une application client-serveur développée en Java sur des services Web (ici est REST) => possibilité d'y interfacer des clients Python ou Perl.

    La page : http://code.google.com/p/psicquic/wi...honCodeSamples montre des exemples Python mais je n'ai rien trouvé sur les pré-requis côté Python pour les faire fonctionner.

    Il n'est pas exclu qu'ils aient été écrits il y a fort longtemps et que personne ne se soit préoccupé de les mettre à jour dans une version "courante".

    C'est frustrant, mais ce n'est pas très grave car REST sont des requêtes HTTP accompagnées de documents XML (i.e. des fichiers "texte") que vous pouvez analyser ou construire vous même ou en passant par la bibliothèque de votre choix.

    Dans le cas particulier de l'exemple, ils utilisent sax2 et xpath pour rechercher dans le document retourné les "nodes" "service" et y rechercher la définition des tags "nom" et "restUrl".

    Que faire?
    1. Récupérez le document XML et sauvez le dans un fichier,
    2. Jouez avec la bibliothèque XML livrée avec la version de Python utilisée pour analyser le document et y récupérer les valeurs que vous souhaitez.
    3. Intégrer les modifications à l'exemple pour le faire fonctionner.

    Ce qui fera au moins trois sujets de discussion en fonction des difficultés que vous allez rencontrer

    nota pour 2, Python vient depuis la version 2.5 avec une bibliothèque xml appelée etree (import xml.etree) qui a de nombreux exemples et tutorials sur effbot. A utiliser si vous n'avez pas de bonne raison pour utiliser autre chose.
    Heu, "l'exemple" ne marche pas n'est pas une "bonne raison": cela ne fait que "compliquer"(*) le démarrage du temps passé à vous approprier un peu les différentes technos à utiliser pour écrire votre code.
    (*) vous ne maîtrisez pas encore ces technos et en plus le point d'entrée qu'on vous propose est "buggy"...

    En recherchant dans les posts que j'ai commis sur le sujet, prenez le temps de lire le topic. Cela fait la même chose.

    Bon courage,
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    J'ai utilisé un autre langage pour exécuter le script (j'ai tout traduit)

    Merci quand même pour tes suggestions, c'est vraiment sympas^^

Discussions similaires

  1. problème pour importer données excel dans Access
    Par sarah67 dans le forum Access
    Réponses: 8
    Dernier message: 20/02/2006, 08h17
  2. problème d'importation
    Par weejungle dans le forum Requêtes
    Réponses: 8
    Dernier message: 19/12/2005, 15h22
  3. Réponses: 7
    Dernier message: 23/11/2005, 18h20
  4. Problème d'importation activeX
    Par arnaud2157 dans le forum MFC
    Réponses: 7
    Dernier message: 20/07/2005, 14h01
  5. Problème d'import avec l'interface sql server
    Par moutanakid dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 20/08/2004, 16h00

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