Structure du projet Python:
src/ - package-name/ -- A/ ---B/ b1.py ---C/ c1.py
Dans c1.py
, il utilise une fonction définie dans b1.py
. J'essaye 2 manières:
Méthode1: de src.package-name.A.B.b1 import b1_func
Méthode 2: à partir de ..B.b1 import b1_func
Le module d'importation démarre à partir du répertoire package-name
, donc src / code > ne sera pas visible dans le module importé. Donc, la méthode 1 ne fonctionne pas lors de l'importation de mon propre module.
La méthode 2 ne fonctionne pas lorsqu'elle est exécutée dans l'IDE. ValueError: tentative d'importation relative au-delà du package de niveau supérieur
Des suggestions? merci.
3 Réponses :
Avez-vous des fichiers __init__.py
dans A et B? Il peut être intéressant d'importer correctement b1_func dans les fichiers d'initialisation de B puis de A.
B __init__.py
from B import b1_func
ou autre p >
et A __init__.py
from .b1_file import b1_func
Ensuite, vous devriez pouvoir importer ..b1_func
p>
Je change la "Content Root" dans le répertoire du nom du package dans PyCharm et import package-name.B.b1
. Cela fonctionne.
suivez ces étapes pour importer les packages où vous voulez
ie : __init__.py dans src
et __init__.py dans le package
et __init__.py dans A
et __init__.py en B
et __init__.py en C
.
b1.py
dans c1.py
ajoutez ces lignes dans le fichier c1.py
. li>
import sys sys.path.append(â../â) #if u want from src folder add ../../ from B.b1 import YourFunctionName