Импорт модуля из полного пути к файлу в Python

  1. Импорт модуля с полным путем к файлу в Python 3.5+
  2. Импорт модуля с полным путем к файлу в Python 3.3 и 3.4
  3. Импорт модуля с полным путем к файлу в Python 2

Чтобы импортировать файл Python по заданному пути, используйте библиотеки Python на основе версии Python. В этой статье объясняется, как импортировать модуль с учетом полного пути к модулю в Python.

Используйте следующие функции библиотек на основе версии Python для импорта модулей.

  1. Для Python 3.5+ импортируйте importlib.util.
  2. Для Python 3.3 и 3.4 импортируйте importlib.machinery, SourceFileLoader.
  3. Для Python 2 импортируйте imp.

Прежде чем мы начнем, подготовьте файл настройки, чтобы продемонстрировать примеры.

  • Упомяните следующий код в файле addmodule.py.
def printingstatement():
      print("From addmodule.py")
  • Поместите addmodule.py в папку. В приведенных ниже примерах он находится внутри c:\\Users\\Rexjohn\\Folder-1\\.

Импорт модуля с полным путем к файлу в Python 3.5+

Для Python 3.5+ используйте функции библиотеки importlib.util для импорта модуля:

import importlib.util

MODULE_PATH = "c:\\Users\\Rexjohn\\Folder-1\\addmodule.py"
MODULE_NAME = "addmodule"

spec = importlib.util.spec_from_file_location(MODULE_NAME, MODULE_PATH)
modulevar = importlib.util.module_from_spec(spec)
spec.loader.exec_module(modulevar)

modulevar.printingstatement()

Здесь используйте следующие функции из библиотеки importlib.util.

  • spec_from_file_location(MODULE_NAME, MODULE_PATH). Пожалуйста, укажите полный путь к файлу с именем модуля MODULE_NAME в MODULE_PATH.
  • module_from_spec(spec)
  • exec_module(modulevar)

Выход:

From addmodule.py

Импорт модуля с полным путем к файлу в Python 3.3 и 3.4

Если вы работаете с Python 3.3 и 3.4, вы можете использовать функции библиотеки importlib.machinery, SourceFileLoader для импорта модуля:

from importlib.machinery import SourceFileLoader

MODULE_PATH = "c:\\Users\\Rexjohn\\Folder-1\\addmodule.py"
MODULE_NAME = "addmodule"

modulevar = SourceFileLoader(MODULE_NAME, MODULE_PATH).load_module()

modulevar.printingstatement()

Здесь используйте следующие функции из библиотек importlib.machinery, SourceFileLoader, указав.

SourceFileLoader(MODULE_NAME, MODULE_PATH).load_module()

Выход:

From addmodule.py

Импорт модуля с полным путем к файлу в Python 2

Для Python 2 используйте функции библиотеки imp для импорта модуля:

import imp

MODULE_PATH = "c:\\Users\\Rexjohn\\Folder-1\\addmodule.py"
MODULE_NAME = "addmodule"

modulevar = imp.load_source(MODULE_NAME, MODULE_PATH)

modulevar.printingstatement()

Здесь используйте следующую функцию из библиотеки imp.

load_source(MODULE_NAME, MODULE_PATH)

Выход:

From addmodule.py