Maison >développement back-end >Tutoriel Python >Comment puis-je importer dynamiquement un module Python à partir d'un chemin de fichier spécifique ?

Comment puis-je importer dynamiquement un module Python à partir d'un chemin de fichier spécifique ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-20 11:37:09893parcourir

How Can I Dynamically Import a Python Module from a Specific File Path?

Importation dynamique d'un module à partir d'un chemin spécifié

En Python, l'importation d'un module se fait généralement en spécifiant son nom. Cependant, que se passe-t-il si vous devez importer un module à partir d'un fichier spécifique, quel que soit son emplacement dans le système de fichiers ?

Solution :

Pour importer dynamiquement un module basé sur son chemin complet, vous pouvez utiliser l'une des techniques suivantes :

Python 3.5 (Recommandé) :

import importlib.util
import sys

spec = importlib.util.spec_from_file_location("module.name", "/path/to/file.py")
foo = importlib.util.module_from_spec(spec)
sys.modules["module.name"] = foo
spec.loader.exec_module(foo)
foo.MyClass()  # Access a class within the module

Python 3.3 et 3.4 :

from importlib.machinery import SourceFileLoader

foo = SourceFileLoader("module.name", "/path/to/file.py").load_module()
foo.MyClass()  # Access a class within the module

Python 2 :

import imp

foo = imp.load_source('module.name', '/path/to/file.py')
foo.MyClass()  # Access a class within the module

Notez que ces méthodes offrent des options pratiques pour importer des fichiers Python et des DLL compilés en tant que bien.

Remarque supplémentaire :

Il convient de mentionner que cette approche est particulièrement utile lorsque vous travaillez avec des modules générés dynamiquement ou des modules qui ne sont installés dans aucun des standards Python. chemins.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn