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

Erro ao importar classe Conta: can't read /var/mail/conta

Boa tarde ! Ao realizar o comando: from conta import Conta conforme orienta o exercício apresenta a mensagem de erro: from: can't read /var/mail/conta

Estou na mesma pasta que está o arquivo. Copiei o código para verificar se havia erro de sintaxe, mas mesmo assim não executa. Fechei o PyCharm e abri novamente, mesmo cenário.

Alguém já passou por isto e poderia compartilhar alguma idéia.

Obrigado, Fabiano

6 respostas

Poderia printar o que aparece pra você e disponibilizar o projeto em algum lugar (como o github) pra eu conseguir testar aqui por favor?

A estrutura do teu projeto precisa ser da seguinte forma:

Projeto (Pasta)

  **** arquivo_1.py
  **** arquivo_2.py

No código do arquivo_2:

    from arquivo_1 import "Nome da função"

Se estiver assim, pode ser alguma configuração da IDE que vc utiliza.

Olá Luigi, obrigado! (segue o código)


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

E quando executo no terminal do PyCharm: (venv) ➜ oo pwd

/Users/fabianos/PycharmProjects/oo

(venv) ➜ oo from conta import Conta

from: can't read /var/mail/conta

(venv) ➜ oo

Olá Tiago, obrigado!

Estou chamando assim:

(venv) ➜ oo from conta import Conta

/Users/fabianos/PycharmProjects/oo (venv) ➜ oo ls -l

drwxr-xr-x 4 fabianos staff 128 Jun 15 19:19 pycache

-rw-r--r-- 1 fabianos staff 241 Jul 14 13:18 conta.py

-rw-r--r-- 1 fabianos staff 325 Jun 15 19:19 exercicios.py

-rw-r--r-- 1 fabianos staff 519 Jun 14 21:25 main.py

-rw-r--r-- 1 fabianos staff 325 Jun 15 19:21 teste.py

drwxr-xr-x 7 fabianos staff 224 Jul 14 13:20 venv (venv) ➜ oo

Será que a chamada que estou fazendo está errada?

Ai Fabiano, com seus prints do terminal eu consegui descobrir, se liga:

Não é que seu código esteja com problema, é que seu código não está sendo executado pelo python. Se seu código ta num arquivo chamado main.py você precisa executar ele usando python main.py (ou python3 main.py que eu recomendo mais por forçar o uso do python 3.x caso você tenha o python 2.x na sua máquina) sem usar o 'python' no começo seu shell vai executar isso e vai dar problema na palavra chave from (from é um nome de uma linha de comando utilitário que printa os nomes de quem enviou um email para o nome de usuario dado, por isso o shell tenta acessar sua caixa de correio).

Outra solução é adicionar a seguinte linha no topo do seu código:

#!/usr/bin/env python

Isso vai instruir seu shell a executar o código via python ao invés de tentar interpretar por si só.

P.S.: Se quiser ler a resposta original em ingles é essa ai, peguei desse post:

No, it's not the script, it's the fact that your script is not executed by Python at all. If your script is stored in a file named script.py, you have to execute it as python script.py, otherwise the default shell will execute it and it will bail out at the from keyword. (Incidentally, from is the name of a command line utility which prints names of those who have sent mail to the given username, so that's why it tries to access the mailboxes).

Another possibility is to add the following line to the top of the script:

#!/usr/bin/env python

This will instruct your shell to execute the script via python instead of trying to interpret it on its own.

solução!

Cara, entendi o que disse.

Muito obrigado pelos esclarecimentos.

Executei aqui e deu certo com a instrução python.

Abraço!