Caminho de Pesquisa dos Módulo em Python

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 ambiente PYTHONPATH. Ou você pode colocar o module.py em uma das pastas incluídas na variável PYTHONPATH.
  • 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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *