HOWTO · Python

Recarregar ou desimportar módulo em Python

Este tutorial demonstra como recarregar um módulo em Python

Nesta página

Os módulos nos permitem armazenar definições de diferentes funções e classes em um arquivo Python e, em seguida, esses arquivos podem ser usados ​​em outros arquivos. Os pandas, NumPy, scipy, Matplotlib são alguns dos módulos mais utilizados em Python.

Também podemos criar nossos próprios módulos em Python, o que pode aumentar a modularidade e simplificar programas grandes.

Desimportar um módulo em Python

Usamos o comando import para carregar um módulo específico na memória em Python. Não podemos desimportar um módulo, pois o Python o armazena na memória cache, mas podemos usar alguns comandos e tentar cancelar a referência desses módulos para que não possamos acessá-los durante o programa. Esses métodos, no entanto, podem falhar às vezes, portanto, tome cuidado.

O primeiro é o comando del. Ele é usado para remover uma variedade de objetos em Python. A remoção do acesso de um módulo usando este comando é mostrada a seguir.

import module_name

del module_name

O sys.modules é um dicionário que pode ser visualizado através do módulo sys e serve para armazenar as referências de uma função e módulos. Podemos remover o módulo necessário deste dicionário usando o comando del para remover todas as suas referências. É difícil remover módulos que foram muito referenciados, então é preciso ter cuidado ao usar isso. Este método pode produzir resultados indesejados, portanto, tenha cuidado.

if "myModule" in sys.modules:
    del sys.modules["myModule"]

Recarregue um módulo em Python

Caso tenhamos feito alterações em um módulo e desejamos implementar essas alterações sem reiniciar o programa, podemos usar a função reload() que recarregará o módulo necessário.

A função reload() tem uma longa história em Python. Até o Python 2.7, era uma função embutida.

No Python 3.0 ao Python 3.3, estava presente na biblioteca imp que posteriormente foi descontinuada e alterada para o módulo importlib, que contém funções para implementar os mecanismos de importação de códigos em arquivos Python.

O código a seguir mostra como usar a função reload().

import importlib

reload(module_name)