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
comonumpys 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
comoNumPy
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 :)