Importar um módulo de um caminho de arquivo completo em Python

Najwa Riyaz 30 janeiro 2023
  1. Importar um módulo com um caminho de arquivo completo em Python 3.5+
  2. Importar um módulo com um caminho de arquivo completo no Python 3.3 e 3.4
  3. Importar um módulo com um caminho de arquivo completo no Python 2
Importar um módulo de um caminho de arquivo completo em Python

Para importar um arquivo Python de um determinado caminho, use as bibliotecas Python baseadas na versão Python. Este artigo explica como importar um módulo com o caminho completo para o módulo em Python.

Use as funções das seguintes bibliotecas com base na versão Python para importar módulos.

  1. Para Python 3.5+, import importlib.util.
  2. Para Python 3.3 e 3.4, importe importlib.machinery, SourceFileLoader.
  3. Para Python 2, importe imp.

Antes de começar, prepare a configuração do arquivo para demonstrar os exemplos.

  • Mencione o seguinte código no arquivo addmodule.py.
def printingstatement():
    print("From addmodule.py")
  • Coloque addmodule.py dentro de uma pasta. Nos exemplos abaixo, está dentro de c:\\Users\\Rexjohn\\Folder-1\\.

Importar um módulo com um caminho de arquivo completo em Python 3.5+

Para Python 3.5+, use as funções da biblioteca importlib.util para importar um módulo:

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()

Aqui, use as seguintes funções da biblioteca importlib.util.

  • spec_from_file_location(MODULE_NAME, MODULE_PATH). Mencione o caminho completo do arquivo do nome do módulo MODULE_NAME em MODULE_PATH.
  • module_from_spec(spec)
  • exec_module(modulevar)

Resultado:

From addmodule.py

Importar um módulo com um caminho de arquivo completo no Python 3.3 e 3.4

Se estiver trabalhando com Python 3.3 e 3.4, você pode usar as funções da biblioteca importlib.machinery, SourceFileLoader para importar um módulo:

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()

Aqui, use as seguintes funções das bibliotecas importlib.machinery, SourceFileLoader mencionando.

SourceFileLoader(MODULE_NAME, MODULE_PATH).load_module()

Resultado:

From addmodule.py

Importar um módulo com um caminho de arquivo completo no Python 2

Para Python 2, use as funções da biblioteca imp para importar um módulo:

import imp

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

modulevar = imp.load_source(MODULE_NAME, MODULE_PATH)

modulevar.printingstatement()

Aqui, use a seguinte função da biblioteca imp.

load_source(MODULE_NAME, MODULE_PATH)

Resultado:

From addmodule.py

Artigo relacionado - Python Import