4
respostas

ModuleNotFoundError: No module named 'codigo'

Olá galera, estou com problema na importação do bytebank dentro do arquivo test_bytebank, ele retorna:

ModuleNotFoundError: No module named 'codigo'

Até imaginei que fosse por conta da estrutura das pastas e alterei para from ..codigo.bytebank import Funcionario, mas retorna:

ImportError: attempted relative import with no known parent package

Meu código pode ser visto aqui: https://github.com/reynan-dev/python3-tdd

Obrigado.

4 respostas

Olá Reynan, tudo bem?

Seria interessante você colocar em todos os diretórios o arquivo __init__.py, assim os diretórios passam a serem iniciados como módulo pelo interpretador Python.

Estou exatamente com o mesmo erro, mesmo já tendo colocado o arquivo init.py dentro do repositório 'código', como o Anderson falou. Uso o Windows 10 e o VSCode. Alguém consegue ajudar por favor? Não consigo dar continuidade ao curso.

Tentei também usar as seguintes formas:

from .codigo.bytebank import Funcionario
from ..codigo.bytebank import Funcionario

e ambas dão o erro "Insira aqui a descrição dessa imagem para ajudar na acessibilidade "

Atualização: quando escrevo 'pytest' no terminal, funciona: Insira aqui a descrição dessa imagem para ajudar na acessibilidade Mas só se estiver fora do venv.

Olá pessoal! Tudo certo? 🙂

O que pode estar acontecendo é que o interpretador selecionado pela IDE do Pycharm não é o mesmo do ambiente virtual.

Para mudar o ambiente virtual basta seguir os seguintes passos:

1) Usar o comando de teclado + + para abrir a aba de configurações;

2) Digitar Interpreter na barra de busca no menu de configurações para entrar na aba destinada à configuração de interpretadores de linguagem Python;

3) Selecionar a opção Add Interpreter (Adicionar Interpretador) para adicionar o interpretador do ambiente virtual;

Imagem que retrata o menu de configuração do Pycharm aberto na aba de interpretadores da linguagem

4) Selecione a opção Add Local Interpreter (Adicione interpretador local);

Imagem que denota a opção de botão "Add local interpreter"

5) Uma nova aba de configurações será aberta. Certifique-se de marcar a opção de escolha de um novo interpretador que já existe, marcando a opção Existing (Existente);

6) Selecione o botão denotado por reticências para buscar o interpretador do ambiente virtual;

7) O interpretador do ambiente virtual estará dentro do diretório bin que, por sua vez, estará dentro do diretório venv, tendo o nome de python3.10 (sujeito a outras versões dpendendo da versão do módulo venv instalado). Exemplo de path: venv > bin > python3.10.

Imagem do menu de interpretadores do Pycharm que denota a opção de "existing", a opção de de seleção de um novo interpretador e a arvore de diretórios que leva ao novo interpretador dentro do diretório da "venv"

8) Selecionar o botão Apply (Aplicar) para selecionar o novo interpretador como o padrão do projeto.

Imagem que mostra a aba do menu de interpretadores com o novo interpretador selecionado e com o botão de "apply" denotado. Pronto para a selecão.

Verifique o interpretador selecionado na parte do rodapé inferior direto da IDE. Caso ainda não estiver selecionado basta trocar para o correto do ambiente virtual.

Imagem que mostra parte infertior direita da IDE e a opção de selecionar o interpretador do ambiente virtual

Espero ter ajudado! Quaisquer dúvidas, estou à disposição. 😉

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!

Eu consegui resolver o erro no run do próprio arquivo usando sys.

import sys
sys.path.append('D:\Alura\TDD_python\codigo')

from bytebank import Funcionario

De qualquer forma, sem realizar esse import e mantendo codigo.bytebank o pytest funciona normalmente.