Solucionado (ver solução)
Solucionado
(ver solução)
8
respostas

não rodou no console

não consegui realizar o exercicio no console

print do codigo arquivo conta e class Conta

from conta import Conta
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "C:\Users\Barbara\AppData\Local\JetBrains\PyCharm Community Edition 2021.2.2\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
ModuleNotFoundError: No module named 'conta'![]()
8 respostas

Oi Bárbara, da uma olhada neste post.

https://cursos.alura.com.br/forum/topico-modulenotfounderror-no-module-named-126120

oi, Bruno, segui os passos do post que mandou, e ainda assim deu erro.

https://imgur.com/cKpgaN3

Tem algum jeito de arrumar o caminho do python console?

Oi Bárbara, tem como você colocar mais ou menos como você está seu projeto? me mostra os diretórios, abre o pycharm ou a ide que você está usando la no seu projeto, ai você mostra a arvore de diretórios do seu projeto, abre as pastas para eu poder ver os arquivos também.

Você tem que acessar o caminho correto para usar o python no terminal.

Vou usar o seu Print como exemplo.

#

Dá para ver que seu projeto está em uma pasta no disco C.

C:\cursopython1

Aqui como você está importando:

from conta import Conta

Agora irei tentar recriar o mesmo ambiente para facilitar para você:

PS: estou no trabalho, por algum motivo acho que o proxy da intragov está bloqueando o Upload das Prints que tirei.. Então vou digitar exatamente minha arvore de diretório do projeto.

PASTA=cursopython1
            ARQ=conta.py
            ARQ=teste.py

Conteúdo do ARQUIVO conta.py:

class Conta:

    def __init__(self, numero, titular, saldo, limite):
        print("Construindo objeto ... {}".format(self))
        self.numero = numero
        self.titular = titular
        self.saldo = saldo
        self.limite = limite

Conteúdo do ARQUIVO teste.py:

def cria_conta(numero, titular, saldo, limite):
    conta = {"numero": numero, "titular": titular, "saldo": saldo, "limite": limite}
    return conta

def deposita(conta, valor):
    conta["saldo"] += valor

def saca(conta, valor):
    conta["saldo"] -= valor

def extrato(conta):
    print("Saldo {}".format(conta["saldo"]))

Testando:

Vou colar as linhas do meu console já que o Print não sobe.

1 - PS C:\cursopython1>
2 - PS C:\cursopython1> python
Python 3.9.6 (tags/v3.9.6:db3ff76, Jun 28 2021, 15:26:21) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
3 - >>>
4 - >>> from conta import Conta
5 - >>> 

O módulo foi importado normalmente.

Possível problema que está ocorrendo - Nome dos arquivos e da classe estão sendo chamados errados no import.

Vamos lá:

1°) quando eu baixei o arquivo da sua aula aqui no meu PC, a primeira coisa que notei foi que o conta.py, está assim: Conta.py

Resolução: Se no seu projeto o arquivo estiver assim Conta.py Você terá que importar desta forma: from Conta import Conta

2°) os arquivos do projeto estão dentro do Diretório RAIZ do projeto então é possível importar direto passando o nome do arquivo.

Resolução: Você terá que importar desta forma: from ARQUIVO.PY import NomeDaClasse

3° se no seu projeto você tiver colocado seus arquivos em alguma pasta, deverá passar esse caminho no import.

PASTA=cursopython1
        SUBPASTA=contas
                    ARQ=conta.py
        ARQ=teste.py

Resolução: Passa o caminho completo:

PS C:\cursopython1>
PS C:\cursopython1> python
Python 3.9.6 (tags/v3.9.6:db3ff76, Jun 28 2021, 15:26:21) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from contas.conta import Conta
>>>

Lembrando que:

* 'from' = de onde você quer o arquivo
* 'contas' = pasta dos arquivos
* '.' = acessa o que tem na pasta
* 'conta' = o arquivo conta.py
* import = o que vamos importar
* 'Conta' = A classe que você quer importar

Espero que resolva :)

link com os prints no imgur; https://imgur.com/a/4Fl07df

eu não sei se foi falta de entendimento meu, mas tentei fazer o que descreveu e não funcionou. Já procurei em foruns tbm (tentei o que falaram sobre instalações) e nada.

**como está o projeto:

c:\cursopython1 pasta: Curso_A subpasta: pythonOO arq:conta.py (c = minusculo e a classe com C maiusculo) arq/; usando_oo.py

Bárbara, no seu print você está tentando acessar assim: from conta import conta.

Só que como eu disse no post anterior, os seus arquivos estão em subpastas então vai ter que acessar todo o caminho para conseguir chamar no terminal.

Guarda isso aqui ó:

from PastaPrincipal.SubPasta.Arquivo.py import NomeDaClasse
* from = comando para importar

* PastaPrincipal = Curso_A

* SubPasta = pythonOO

* conta = conta.py

* import = compara para importar

* NomeDaClasse = Conta

TESTANDO NO MEU TERMINAL

PS C:\cursopython1> 

PS C:\cursopython1> python

Python 3.9.6 (tags/v3.9.6:db3ff76, Jun 28 2021, 15:26:21) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.

>>> from Curso_A.pythonOO.conta import Conta

>>>

Pequena alteração para teste.

class Conta:

    def __init__(self, numero, titular, saldo, limite):
        #   print("Construindo objeto ... {}".format(self))
        self.numero = numero
        self.titular = titular
        self.saldo = saldo
        self.limite = limite

    def __str__(self):
        return f'Testando Método STR {self.numero}, {self.titular}, {self.saldo}, {self.limite}'

        # Usei o DunderSTR para vermos a saida da criação da conta no terminal.

TESTANDO NO MEU TERMINAL:

Windows PowerShell
Copyright (C) Microsoft Corporation. Todos os direitos reservados.

Experimente a nova plataforma cruzada PowerShell https://aka.ms/pscore6

PS C:\cursopython1>

PS C:\cursopython1> python
Python 3.9.6 (tags/v3.9.6:db3ff76, Jun 28 2021, 15:26:21) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.

>>> from Curso_A.pythonOO.conta import Conta
>>>
>>> c1 = Conta(1, 'Bruno', 100, 200)
>>>
>>> print(c1)
Testando Método STR 1, Bruno, 100, 200
>>>

Seguindo o caminho que você passou aqui, refiz minhas pastas para ficar igual e fiz o acesso com o IMPORT.

Criei um objeto "c1" para ser uma instancia de uma Conta.

Imprimi a conta.

Tenta repetir meus passos no IMPORT

Para não esquecer

Pense que o Objeto Conta está dentro de uma casa, para buscarmos algo dentro de uma casa temos que passar por todas as portas até chegar ao objeto.

Você colocou seu objeto Conta la dentro do "Quarto pythonOO" e ta tentando pular o muro e atravessar as paredes, tentando acessar ele do seu "quintal PastaRAIZ ou cursopython1"

Não vai dar certo, temos que abrir as portas e passar pelos comodos para acessar o Objeto que no seu caso é:

 from Curso_A.pythonOO.conta import Conta

 Se você fizer mais subpastas terá que adicionalas no caminho... assim como se fizer mais comodos dentro da casa terá que passar por eles..

tipo isso hehe
solução!

Oi, muito obrigada, no terminal funcionou. Eu tentei passar os caminhos das pastas com barras e não com ponto.

De nada.. que bom que funcionou hehe

Oi Bárbara tem como você marcar que eu resolvi esse post? por favor? não está contando como uma solução para mim.