107 votes

Obtention de l'erreur Python "from : can't read /var/mail/Bio".

J'exécute un (bio)python script qui aboutit à l'erreur suivante :

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

vu que mon script n'a rien à voir avec le courrier, je ne comprends pas pourquoi mon script cherche dans /var/mail.

Quel semble être le problème ici ? Je doute que cela puisse aider puisque le script ne semble pas être le problème, mais voici quand même mon 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()

Quel est le problème ici ? Une mauvaise configuration de Python ? Je ne pense vraiment pas que ce soit le script.

223voto

Tamás Points 18211

Non, ce n'est pas le script, c'est le fait que votre script n'est pas du tout exécuté par Python. Si votre script est stocké dans un fichier nommé script.py vous devez l'exécuter en tant que python script.py sinon l'interpréteur de commandes par défaut l'exécutera et il se sauvera à l'étape from mot-clé. (Accessoirement, from est le nom d'un utilitaire de ligne de commande qui imprime les noms de ceux qui ont envoyé du courrier au nom d'utilisateur donné, c'est pourquoi il essaie d'accéder aux boîtes aux lettres).

Une autre possibilité consiste à ajouter la ligne suivante en haut du script :

#!/usr/bin/env python

Ceci demandera à votre shell d'exécuter le script par l'intermédiaire de python au lieu d'essayer de l'interpréter seul.

17voto

Ehsan Quranwala Points 171

J'ai rencontré une erreur similaire

"from : ne peut pas lire /var/mail/django.test.utils"

en essayant d'exécuter une commande

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

dans le tutoriel à https://docs.djangoproject.com/en/1.8/intro/tutorial05/

après la lecture de la réponse de Tamás J'ai réalisé que je n'essayais pas cette commande dans le shell python mais dans le termnial (cela peut arriver à ceux qui sont nouveaux dans linux).

La solution était d'abord d'entrer dans le shell python avec la commande python et lorsque vous obtenez ces >>> puis lancez toutes les commandes python

6voto

Sergii Shcherbak Points 213

Même chose ici. J'ai eu cette erreur en lançant une commande import depuis le terminal sans activer le shell python3 via manage.py dans un projet django (oui, je suis encore un débutant). Comme on doit s'y attendre, l'activation du shell a permis à la commande d'être interprétée correctement.

./manage.py shell

et seulement alors

>>> from django.contrib.sites.models import Site

5voto

Z.Davey Points 51

Mettez ceci en haut de votre fichier .py (pour python 2.x)

#!/usr/bin/env python 

ou pour python 3.x

#!/usr/bin/env python3

Ceci devrait rechercher l'environnement python, sans cela, il exécutera le code comme si ce n'était pas du code python, mais directement dans le CLI. Si vous avez besoin de spécifier un emplacement manuel de l'environnement python, mettez

#!/#path/#to/#python

2voto

Dhara Patel Points 313

J'ai eu la même erreur parce que j'essayais d'exécuter sur

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

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

Pour résoudre ce problème, tapez la commande python et quand vous obtenez ces >>> puis lancez toutes les commandes python

>>>from classDemo import MyClass
>>>f = MyClass()

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X