Partage
  • Partager sur Facebook
  • Partager sur Twitter

'module' object has no attribute 'fromstring'

    19 décembre 2016 à 14:39:15

    Bonjour,

    Je développe actuellement des tests fonctionnels pour un workflow de plusieurs scripts Python (qui n'ont pas été écrit par moi-même, je reprends le job) pour de la bioinformatique.

    J'ai des wrappers en xml qui donne les instructions à une instance Galaxy (un outil de bioinfo, via un logiciel qui s'appelle Planemo), où sont effectués les tests - voilà pour le contexte -

    Jusqu'à présent, j'avais de nombreuses erreurs de path et de scripts non inclus automatiquement dans le xml, que je m'employais à corriger, mais subitement, sans modification dont je me souvienne (mis à part un nettoyage des fichiers temporaires générés par les tests), j'ai obtenu cette erreur :

    'module' object has no attribute 'fromstring'

     "fromstring" n'apparaît dans aucun des scripts, je ne comprends absolument pas ce qui se passe ...

    Je ne pense pas que les utlisateurs de Galaxy/Planemo soient très nombreux, mais quelqu'un a t'il une idée ?

    • Partager sur Facebook
    • Partager sur Twitter
      19 décembre 2016 à 17:51:40

      Salut,

      Si je me fis à ce que vous dites, c'est une erreur d'importation du module XML.

      fromstring est une fonction du module xml.etree.ElementTree, pas une méthode de  la classe xml.etree.ElementTree.ElementTree.

      from xml.etree import ElementTree as etree
      ...
      tree = etree.fromstring(r)

      Je sais pas si, vous avez importer ce module, vous devriez regarder :)

      Bonne chance

      A+

      -
      Edité par nolimitech 19 décembre 2016 à 17:52:50

      • Partager sur Facebook
      • Partager sur Twitter
        21 décembre 2016 à 11:56:28

        Bonjour,

        Merci pour l'astuce.

        J'ai essayé, ainsi que d'autres choses, mais ça ne fonctionne pas, j'ai des erreurs toutes plus improbables que les autres. Parfois, l'erreur change alors que je n'ai rien modifié ! La dernière en date est

        SyntaxError: Missing parentheses in call to 'print'

         Alors que la ligne en question ne posait aucun problème avant... Alors que je suis bien en python 2, y compris dans l'instance Galaxy, j'y pige plus rien x)

        -
        Edité par Micawber 21 décembre 2016 à 15:08:27

        • Partager sur Facebook
        • Partager sur Twitter
          21 décembre 2016 à 16:15:55

          Apparemment non tu dois interpréter avec une version de pyhton 3.X quelque part... Essaye de renseigner le chemin de l'interpréteur en haut de ton code avec la ligne #!ton_chemin_ici
          • Partager sur Facebook
          • Partager sur Twitter

          Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie.

            21 décembre 2016 à 17:52:37

            Salut,

            Exactement, comme Superbowy à dit.

            Pour être bien sure, que tout fonctionne sous 2.7, vous devriez supprimer tout module et python 3.X.

            Malgré qu'il serait préférable de faire le contraire. C'est-à-dire de travailler en python 3.X et de supprimer /remplacer tout le 2.7

            -
            Edité par nolimitech 21 décembre 2016 à 18:03:55

            • Partager sur Facebook
            • Partager sur Twitter
              21 décembre 2016 à 18:37:33

              Oui, mieux vaut travailler avec Python 3.X...
              • Partager sur Facebook
              • Partager sur Twitter

              Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie.

                21 décembre 2016 à 20:11:32

                Difficile, j'ai 8000 lignes de code à reprendre, toutes écrites en python 2 ... On a jeté un coup d’œil avec mon maître d'apprentissage cet après midi, et ça vient du fait que l'outil qu'on utilise, Planemo, utilise tantôt python 2, tantôt python 3 selon la version des packages bioconda qu'on utilise ...Bref un beau bazar.
                • Partager sur Facebook
                • Partager sur Twitter
                  22 décembre 2016 à 19:37:54

                  Salut,

                  Si vous êtes sûr que c'est seulement, un seul module. C'est pas si pire à modifier.

                  90% des problèmes seront les prints et les string en bytes (encode() decode())

                  De plus, si votre programme exécute encore des anciens modules, qui sont peut-être dépréciés, ils seraient préférable de trouver une alternative dès le départ, soit les remplacer, soit les modifier.

                  Bonne chance

                  A+

                  -
                  Edité par nolimitech 22 décembre 2016 à 20:14:30

                  • Partager sur Facebook
                  • Partager sur Twitter
                    22 décembre 2016 à 19:54:01

                    Si, c'est quand même vraiment long... Peut-être qu'il existe un logiciel qui est capable de s'en occuper(je n'en sais rien, je dis ça un peu au hasard)
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie.

                    'module' object has no attribute 'fromstring'

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown