Resumo: neste tutorial, você aprenderá como o caminho de pesquisa do módulo funciona em Python quando você importa um módulo para um programa.
Introdução ao caminho de pesquisa dos módulo em Python
Quando você importa um módulo em um programa:
import module
O Python procurará o arquivo module.py
nas seguintes fontes:
- A pasta atual a partir da qual o programa é executado.
- Uma lista de pastas especificadas na variável de ambiente PYTHONPATH, se você defini-la antes.
- Uma lista de pastas dependente da instalação que você configurou quando instalou o Python.
O Python armazena o caminho de pesquisa resultante na variável sys.path
que vem do módulo sys
.
O programa a seguir mostra o caminho de pesquisa do módulo atual:
import sys
for path in sys.path:
print(path)
Aqui está um exemplo de saída no Windows:
D:\Python\
C:\Program Files\Python38\python38.zip
C:\Program Files\Python38\DLLs
C:\Program Files\Python38\lib
C:\Program Files\Python38
C:\Users\PythonTutorial\AppData\Roaming\Python\Python38\site-packages
C:\Program Files\Python38\lib\site-packages
E o seguinte é o exemplo de saída no Linux:
/Library/Frameworks/Python.framework/Versions/3.8/bin
/Library/Frameworks/Python.framework/Versions/3.8/lib/python38.zip
/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8
/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/lib-dynload
/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.8/site-packages
Para garantir que o Python sempre encontre o module.py
, você precisa:
- Colocar o arquivo
module.py
na pasta onde o programa será executado. - Incluir a pasta que contém o
module.py
na variável de ambientePYTHONPATH
. Ou você pode colocar omodule.py
em uma das pastas incluídas na variávelPYTHONPATH
. - Coloque o
module.py
em uma das pastas dependentes da instalação.
Modificando o caminho de pesquisa do módulo Python em tempo de execução
O Python permite que você modifique o caminho de pesquisa do módulo em tempo de execução, modificando a variável sys.path
. Isso permite que você armazene arquivos de módulo em qualquer pasta de sua escolha.
Como sys.path
é uma lista, você pode anexar um caminho de pesquisa a ela.
O exemplo a seguir adiciona d:\modules
ao caminho de pesquisa e usa o módulo recruitment
armazenado nesta pasta:
>>> import sys
>>> sys.path.append('d:\\modules\\')
>>> import recruitment
>>> recruitment.hire()
Hire a new employee...
Resumo
- Quando você importa um módulo, o Python procurará o arquivo do módulo nas pastas especificadas na variável
sys.path
. - O Python permite que você modifique o caminho de pesquisa do módulo alterando, adicionando e removendo elementos da variável
sys.path
.