Importar módulo do subdiretório em Python
-
Importar um módulo do subdiretório em Python usando
__init__.py
-
Importar um módulo do subdiretório em Python usando o método
sys.path.insert()
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")