J'ai 3 dossiers (Model, View, Controller) qui disposent chacun de fichiers avec des méthodes et je n'arrive pas à accéder aux méthodes qui sont dans d'autres dossiers.
Par exemple je voudrais DEPUIS le fichier python Main.py qui se trouve dans le dossier Controller, accéder à la fonction creer_bdd qui est dans le fichier Gestion_database.py qui se trouve dans le dossier Model.
Comment dois-je procéder pour faire ca. Je sais que ca doit se faire via un import mais je n'arrive pas à le faire. J'ai fais un dessin pour que ce soit plus clair.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Pourtant c'est bien comme cela que ça doit être fait, depuis votre répertoire racine (celle du projet), exécuter cette commande python
python3 -m Controller.Main
et ça devrait fonctionner... Faîtes une recherche sur la commande -m pour comprendre le pourquoi du comment.
Je vous laisse lire cette documentation pour bien comprendre la manière de créer un projet en python.
Votre manière de faire est peut-être reprise de votre expérience sur un autre langage, mais je vous conseille de faire abstraction de cette expérience et d'appliquer la manière de faire Python à moins de prendre le risque de faire du bricolage avec vos modules.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
J'ai 3 dossiers (Model, View, Controller) qui disposent chacun de fichiers avec des méthodes et je n'arrive pas à accéder aux méthodes qui sont dans d'autres dossiers.
Vous avez tout d'abord un problème de terminologie. Vos fichiers d'extension .py s'appellent scripts ou modules. Ils contiennent la définition de fonctions (les méthodes, c'est pour des "class").
Jobard91 a écrit:
Comment dois-je procéder pour faire ca. Je sais que ca doit se faire via un import mais je n'arrive pas à le faire. J'ai fais un dessin pour que ce soit plus clair.
Le fonctionnement d'import suppose partir d'un script principal dont le répertoire sert de racine aux autres packages/modules de l'application (qui seront dans le répertoire ou des sous-répertoires).
En dehors de cette hiérarchie simple, il va falloir dire à Python où chercher les modules à importer en les ajoutant à la liste de répertoires qu'est sys.path (manuellement ou via PYTHONPATH ou via python -m).
Et avant d'en être là, définir la class Model avec une fonction créer_bdd dans le script main.py pourra très bien simuler un module dans un premier temps:
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)