Je suis nouveau en Python et j'essaie de comprendre comment fonctionnent les paquets et les instructions d'importation. J'ai fait ce paquet, situé dans mon bureau:Importer des paquets en Python, erreur d'attribut
package/
__ init __.py
module2.py
subpackage1/
__ init __.py
module1.py
Voici ce qui est à l'intérieur __ initialisation __ .py dans le dossier du package:
__ all __ =["module2"]
import os
os.chdir("C:/Users/Leo--/Desktop/Package")
import subpackage1.module1
os.chdir("C:/Users/Leo--/Desktop")
et à l'intérieur __ initialisation __ .py dans le dossier subpackage1:
__ all __ =["module1"]
Je veux importer module1.py et module2.py que par écrit
import package
Après avoir tapé la commande ci-dessus dans l'interpréteur je peux accéder sans problème une fonction de module1.py en écrivant
package.subpackage1.module1.mod1()
où MOD1() est une fonction définie dans module1.py. Mais quand je tape
package.module2.mod2()
Je reçois "AttributeError: module 'package' n'a pas d'attribut 'module2'" (mod2() est une fonction définie dans module2.py). Pourquoi est-ce? Merci d'avance!
Merci, mais alors quel est le but de permettre la commande "importer un paquetage" s'il ne fait rien? (en supposant __ init __ .py vide) –
@LeonardoMutti Je n'ai pas compris. Ce que vous voulez dire? –
Considérons la structure de paquetage mentionnée ci-dessus, et disons que __ init __ .py est un fichier vide. Si je tape "import package", quel est l'effet de la commande? –