ModuleNotFoundError: nenhum módulo chamado Python Error [Corrigido]


Quando você tenta importar um módulo em um arquivo Python, o Python tenta resolver esse módulo de várias maneiras. Às vezes, Python lança o ModuleNotFoundError depois. O que significa este erro em Python?

Como o nome indica, esse erro ocorre quando você está tentando acessar ou usar um módulo que não pode ser encontrado. No caso do título, o "módulo chamado Python" não pode ser encontrado.

Python aqui pode ser qualquer módulo. Aqui está um erro quando tento importar um módulo numpys que não pode ser encontrado:

import numpys as np

Veja como é o erro:

Aqui estão algumas razões pelas quais um módulo pode não ser encontrado:

  • Você não tem o módulo que tentou importar instalado no seu computador
  • você escreveu um módulo incorretamente (que ainda liga de volta ao ponto anterior, que o módulo escrito incorretamente não está instalado)... por exemplo, escrever numpy como numpys durante a importação
  • você usa um invólucro incorreto para um módulo (que ainda se vincula ao primeiro ponto)... por exemplo, escrever numpy como NumPy durante a importação lançará o módulo não encontrado erro, pois ambos os módulos não são "iguais"
  • você está importando um módulo usando o caminho errado

Como corrigir o ModuleNotFoundError em Python

Como mencionei na seção anterior, há algumas razões pelas quais um módulo pode não ser encontrado. Aqui estão algumas soluções.

1. Certifique-se de que os módulos importados estão instalados

Veja-se, por exemplo, o entorpecimento. Você usa este módulo em seu código em um arquivo chamado "test.py" assim:

import numpy as np

arr = np.array([1, 2, 3])

print(arr)

Se você tentar executar este código com python test.py e você receber este erro:

ModuleNotFoundError: No module named "numpy"

Então é mais provável que o módulo numpy não esteja instalado no seu dispositivo. Você pode instalar o módulo assim:

python -m pip install numpy

Quando instalado, o código anterior funcionará corretamente e você terá o resultado impresso no seu terminal:

[1, 2, 3]

2. Certifique-se de que os módulos estão escritos corretamente

Em alguns casos, você pode ter instalado o módulo que você precisa, mas tentar usá-lo ainda gera o erro ModuleNotFound. Nesses casos, pode ser que você tenha escrito incorretamente. Tomemos, por exemplo, este código:

import nompy as np

arr = np.array([1, 2, 3])

print(arr)

Aqui, você instalou o numpy, mas a execução do código acima gera esse erro:

ModuleNotFoundError: No module named "nompy"

Este erro vem como resultado do módulo numpy escrito incorretamente como nompy (com a letra o em vez de u). Você pode corrigir esse erro digitando o módulo corretamente.

3. Certifique-se de que os módulos estão no invólucro certo

Semelhante ao problema de erro ortográfico para erros de módulo não encontrados, também pode ser que você esteja digitando o módulo corretamente, mas na caixa errada. Aqui está um exemplo:

import Numpy as np

arr = np.array([1, 2, 3])

print(arr)

Para este código, você tem numpy instalado, mas executar o código acima irá lançar este erro:

ModuleNotFoundError: No module named 'Numpy'

Devido às diferenças de invólucro, numpy e Numpy são módulos diferentes. Você pode corrigir esse erro digitando o módulo na caixa correta.

4. Certifique-se de usar os caminhos certos

Em Python, você pode importar módulos de outros arquivos usando caminhos absolutos ou relativos. Para este exemplo, vou me concentrar em caminhos absolutos.

Quando você tenta acessar um módulo pelo caminho errado, você também obterá o módulo não encontrado aqui. Aqui está um exemplo:

Digamos que você tenha uma pasta de projeto chamada teste. Nele, você tem duas pastas demoA e demoB.

demoA tem um arquivo __init__.py (para mostrar que é um pacote Python) e um módulo test1.py.

demoA também tem um arquivo __init__.py e um módulo test2.py.

Aqui está a estrutura:

└── test
    ├── demoA
        ├── __init__.py
    │   ├── test1.py
    └── demoB
        ├── __init__.py
        ├── test2.py

Eis o conteúdo da test1.py:

def hello():
  print("hello")

E digamos que você queira usar essa função de saudação declarada no test2.py. O código a seguir lançará um erro de módulo não encontrado:

import demoA.test as test1

test1.hello()

Este código irá lançar o seguinte erro:

ModuleNotFoundError: No module named 'demoA.test'

A razão para isso é que usamos o caminho errado para acessar o módulo test1. O caminho certo deve ser demoA.test1. Quando você corrige isso, o código funciona:

import demoA.test1 as test1

test1.hello()
# hello

Conclusão

Para resolver um módulo importado, o Python verifica locais como a biblioteca incorporada, módulos instalados e módulos no projeto atual. Se não for possível resolver esse módulo, ele lançará o ModuleNotFoundError.

Às vezes você não tem esse módulo instalado, então você tem que instalá-lo. Às vezes, é um módulo com erros ortográficos, ou a nomenclatura com a caixa errada, ou um caminho errado. Neste artigo, mostrei quatro maneiras possíveis de corrigir esse erro se você experimentá-lo.

Espero que tenham aprendido com isso :)