Importar módulo do subdiretório em Python

Muhammad Waiz Khan 30 janeiro 2023
  1. Importar um módulo do subdiretório em Python usando __init__.py
  2. Importar um módulo do subdiretório em Python usando o método sys.path.insert()
Importar módulo do subdiretório em Python

Este tutorial explicará os vários métodos para importar um módulo do subdiretório em Python. Suponha que temos um arquivo em um subdiretório do diretório do projeto e queremos importar o arquivo e usar seus métodos em nosso código.

Podemos importar o arquivo de um subdiretório em Python, declarando o subdiretório como um pacote. Portanto, Python o tratará como um pacote e poderemos importar o arquivo para aquele diretório. A outra opção pode ser adicionar o subdiretório à variável de ambiente PYTHONPATH e é o caminho onde o Python procura os pacotes para importar por padrão. Os detalhes e o uso desses métodos são fornecidos a seguir.

Importar um módulo do subdiretório em Python usando __init__.py

O arquivo __init__.py é usado para declarar um diretório como um pacote. O arquivo __init__.py evita que o Python misture o diretório com o mesmo nome, portanto, para diferenciar entre um diretório simples e um pacote, o arquivo __init__.py é usado.

O arquivo __init__.py pode estar vazio ou pode ter o código necessário para inicializar o pacote e uma lista dos módulos necessários para serem importados com o pacote; esta lista é representada pela variável __all__.

Depois que o arquivo __init__.py é adicionado ao subdiretório, podemos importar o arquivo do subdiretório como mostrado no seguinte código de exemplo:

import subdirectory.myfile

Importar um módulo do subdiretório em Python usando o método sys.path.insert()

O método alternativo para importar um arquivo do subdiretório é adicionar esse diretório ao PYTHONPATH. O PYTHONPATH é a variável de ambiente que contém o caminho dos diretórios que o Python pesquisa para importar os pacotes.

Portanto, se adicionarmos o subdiretório ao PYTHONPATH usando o método sys.path.insert(), o Python irá primeiro olhar os diretórios em PYTHONPATH e importá-lo de lá.

O método sys.path.insert() irá inserir o subdiretório na variável sys.path ou PYTHONPATH que contém a lista de diretórios que o Python pesquisará para importar o módulo necessário.

O código de exemplo a seguir demonstra como usar o método sys.path.insert() para importar um arquivo do subdiretório:

import myfile
import sys

sys.path.insert(0, "./subdirectory")

Artigo relacionado - Python Import