0
votes

Python importation de sous-dossiers

Lorsque j'importe un sous-répertoire et attribuez-lui un nom de variable, pourquoi suis-je alors impossible d'importer des modules à partir de ce sous-répertoire via le nom de la variable?

Par exemple, ma structure de répertoire est la suivante: p>

import f1.f2 as f

from f import m1

Error msg: ModuleNotFoundError: No module named 'f'


1 commentaires

Vous n'avez pas créé de __ init __. Py dans vos packages.


3 Réponses :


0
votes

Vous devez créer un module init .PY dans votre colis. Python reconnaît de tels dossiers sous forme de packages.

Créer un fichier init dans le dossier racine, le dossier F1 et le dossier F2.


0 commentaires

0
votes

Chaque fois que vous utilisez à partir de ou import , Python recherche un module avec le nom que vous passez. Vous devez d'abord importer à partir du nom du module réel, puis utilisez vos variables.

Exemple: xxx


2 commentaires

C'est intéressant, je pensais que les variables ont été remplacées par ce qu'ils ont référencé par Python?


Je pense que les variables de la raison ne sont pas autorisées ici est d'éviter les conflits entre les noms de variable et de module. E.G., je peux importer aléatoire , mais je peux également avoir une variable du même nom sans conflit.



1
votes

La grammaire Python n'autorise pas les expressions après de : xxx

f dans la deuxième ligne est une expression variable et La grammaire Python ( https://docs.python.org/3/reference/grammar. HTML ) pense qu'il a trouvé un nom nom , qui est ensuite dirigé vers la machine d'importation pour trouver un module nommé f : xxx

vous pouvez faire xxx

à la place ...


0 commentaires