Obtendo o erro do Python “de: não é possível ler / var / mail / Bio”

92

Estou executando um script (bio) Python que resulta no seguinte erro:

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

visto que meu script não tem nada a ver com mail, não entendo por que meu script está procurando em / var / mail.

O que parece ser o problema aqui? duvido que ajude, pois o script não parece ser o problema, mas aqui está o meu script:

from Bio import SeqIO
from Bio.SeqUtils import ProtParam

handle = open("examplefasta.fasta") 
for record in SeqIO.parse(handle, "fasta"): 
    seq = str(record.seq)
    X = ProtParam.ProteinAnalysis(seq)
    print X.count_amino_acids() 
    print X.get_amino_acids_percent() 
    print X.molecular_weight() 
    print X.aromaticity() 
    print X.instability_index() 
    print X.flexibility() 
    print X.isoelectric_point() 
    print X.secondary_structure_fraction()

Qual é o problema aqui? configuração ruim do python? Eu realmente não acho que seja o roteiro.

brucezepplin
fonte

Respostas:

189

Não, não é o script, é o fato de que seu script não é executado pelo Python. Se o seu script estiver armazenado em um arquivo chamado script.py, você deve executá-lo como python script.py, caso contrário, o shell padrão irá executá-lo e irá resgatar com a frompalavra - chave. (Aliás, fromé o nome de um utilitário de linha de comando que imprime os nomes de quem enviou e-mail com o nome de usuário fornecido, por isso tenta acessar as caixas de correio).

Outra possibilidade é adicionar a seguinte linha no início do script:

#!/usr/bin/env python

Isso instruirá seu shell a executar o script via em pythonvez de tentar interpretá-lo sozinho.

Tamás
fonte
10
Or #!/usr/bin/python/
kirbyfan64sos
13
Sim, a menos que pythonesteja localizado em outro lugar. Eu prefiro usar a envsolução baseada em-porque ela simplesmente procura Python no caminho padrão do usuário.
Tamás
Hmmm ... Nunca ouvi falar disso. Muito verdadeiro.
kirbyfan64sos de
2
excelente - obrigado por apontar meu erro de aluno. estou fazendo a transição da digitação no prompt de comando do python para a execução de scripts.
brucezepplin de
obrigado. Não sou um programador python, mas preciso fazer isso para minha tarefa.
arn-arn
14

Eu encontrei um erro semelhante

"de: não consigo ler /var/mail/django.test.utils"

ao tentar executar um comando

>>> from django.test.utils import setup_test_environment
>>> setup_test_environment()

no tutorial em https://docs.djangoproject.com/en/1.8/intro/tutorial05/

depois de ler a resposta de Tamás percebi que não estava tentando este comando no shell python e sim no termnial (isso pode acontecer com quem é novo no linux)

solução foi entrar primeiro no shell python com o comando python e quando você obtiver esses >>>, em seguida, executar quaisquer comandos python

Ehsan Quranwala
fonte
5

O mesmo aqui. Eu tive este erro ao executar um comando de importação do terminal sem ativar o shell python3 por meio de manage.py em um projeto django (sim, eu sou um novato ainda). Como era de se esperar, a ativação do shell permitiu que o comando fosse interpretado corretamente.

./manage.py shell

e só então

>>> from django.contrib.sites.models import Site
Sergii Shcherbak
fonte
3

Coloque isso no topo do seu arquivo .py (para python 2.x)

#!/usr/bin/env python 

ou para python 3.x

#!/usr/bin/env python3

Isso deve pesquisar o ambiente python, sem ele executará o código como se não fosse código python, mas direto para a CLI. Se você precisar especificar uma localização manual do ambiente python, coloque

#!/#path/#to/#python
Z.Davey
fonte
1

Recebi o mesmo erro porque estava tentando executar

XXX-Macmini:Python-Project XXX.XXX$ from classDemo import MyClass

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

Para resolver isso, digite command python e quando você obtiver esses >>>, execute quaisquer comandos python

>>>from classDemo import MyClass
>>>f = MyClass()
Dhara Patel
fonte
-1

para Mac OS, basta ir aos aplicativos e executar estes Scripts Instalar Certificates.command e Atualizar Shell Profile.command, agora vai funcionar.

Suraj Kumar
fonte