Partage
  • Partager sur Facebook
  • Partager sur Twitter

Importer un fichier situé dans le même dossier

Odoo 11 - Python

Sujet résolu
    18 juillet 2019 à 17:29:10

    Bonjour, 

    Je migre un module de la version 10 à la version 11 d'Odoo.
    Cependant, j'ai une erreur concernant l'import de fichier. 

    Voici ce qui marchait sur la version 10 :

    from functions import *
    

    Sur la version 11 j'ai testé ceci : 

    from ecole.models.functions import *
    

    A savoir que ecole est le nom de mon module et models est le dossier ou est situé le fichier python

    PS : On passe de Python 2.7 à Python 3.5

    Merci


    • Partager sur Facebook
    • Partager sur Twitter
      19 juillet 2019 à 8:18:23

      Pour les imports "absolus" on fait comme ça :

      from odoo.ecole.models import functions

      Mais pour importer un élément du même module en principe ceci doit marcher :

      from . import functions




      -
      Edité par thelinekioubeur 19 juillet 2019 à 8:18:34

      • Partager sur Facebook
      • Partager sur Twitter
        19 juillet 2019 à 9:19:27

        PyCharm me disait qu'il ne trouvait pas functions en faisant de la seconde manière. Je vais réessayer ! Merci

        EDIT : Non ça ne fonctionne pas :/

        EDIT: ça fonctionne quand je le déclare dans le __init__.py (from . import functions) mais pas dans un fichier python :/ Ah moins que je n'appelle pas correctement ma fonction 

        -
        Edité par KévinH 19 juillet 2019 à 9:39:53

        • Partager sur Facebook
        • Partager sur Twitter
          19 juillet 2019 à 9:41:12

          Il ne faut pas se fier à Pycharm s'il est toujours configuré pour python2.

          Je te conseille de créer un module vierge avec la commande

          odoo scaffold mon_module

          ainsi tu verras comment sont fait les imports

          EDIT :

          Si functions est comme sont nom l'indique un fichier avec des fonctions-outils, perso je le met à la racine du module :

          mon_module/__init__.py (contient "from . import models")

          mon_module/tools.py

          mon_module/models/__init__.py (contient "from . import sale_order")

          mon_module/models/sale_order.py

          et dans sale_order je met "from .. import tools" ou "from ..tools import ma_fonction"

          Si je veux importer depuis un autre module je met

          "from odoo.mon_module.tools import ma_fonction"

          -
          Edité par thelinekioubeur 19 juillet 2019 à 9:51:36

          • Partager sur Facebook
          • Partager sur Twitter
            19 juillet 2019 à 10:00:37

            Merci ! 

            Dans le fichier functions.py j'avais une fonctions dec2bin(). J'avais juste à le renommer en functions.dec2bin() pour qu'elle soit pris en compte ;)

            • Partager sur Facebook
            • Partager sur Twitter

            Importer un fichier situé dans le même dossier

            × 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