Lorsque vous travaillez avec des projets Python, vous pouvez rencontrer un problème où un module de votre projet porte le même nom que un module de bibliothèque standard. Cela peut entraîner des conflits d'importation et des erreurs d'exécution. Cet article fournira une solution détaillée à ce problème, expliquant comment contrôler le comportement d'importation de Python sans avoir besoin de renommer les modules.
Comprendre le mécanisme d'importation
Par défaut, Python recherche les modules dans l'ordre suivant :
Résoudre les conflits de modules
Pour éviter les conflits d'importation, vous pouvez utiliser la fonctionnalité Absolute_import introduite dans Python 2.5. Cette fonctionnalité oblige Python à toujours rechercher en premier les modules dans la bibliothèque standard, quelle que soit l'existence d'un module du même nom dans le répertoire courant.
Pour activer l'import_absolu, ajoutez la ligne suivante en haut du module qui doit importer le module de bibliothèque standard :
from __future__ import absolute_import
Une fois Absolute_import activé, Python importera le module de bibliothèque standard même s'il existe un module du même nom dans le dossier du projet.
Exemple :
Supposons que vous ayez un module nommé calendrier dans votre dossier de projet. Pour importer la classe Calendrier de la bibliothèque standard, même avec le module de calendrier local, utilisez le code suivant :
from __future__ import absolute_import import calendar
Comportement Python 3.x
En Python 3. x, le comportement Absolute_import est celui par défaut. Cela signifie que même sans importer explicitement Absolute_import, Python donnera la priorité aux importations depuis la bibliothèque standard par rapport aux modules locaux.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!