Mendapatkan kesalahan Python “from: can't read / var / mail / Bio”

92

Saya menjalankan skrip (bio) python yang menghasilkan kesalahan berikut:

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

karena skrip saya tidak ada hubungannya dengan mail, saya tidak mengerti mengapa skrip saya mencari di / var / mail.

Apa masalahnya di sini? saya ragu itu akan membantu karena skrip tampaknya tidak menjadi masalah, tetapi inilah skrip saya:

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()

Apa masalah yang terjadi di sini? pengaturan python yang buruk? Saya benar-benar tidak berpikir itu naskahnya.

brucezepplin.dll
sumber

Jawaban:

190

Tidak, ini bukan skrip, ini adalah fakta bahwa skrip Anda sama sekali tidak dieksekusi oleh Python. Jika skrip Anda disimpan dalam file bernama script.py, Anda harus menjalankannya sebagai python script.py, jika tidak, shell default akan mengeksekusinya dan akan menalangi fromkata kunci. (Kebetulan, fromadalah nama utilitas baris perintah yang mencetak nama orang yang telah mengirim email ke nama pengguna yang diberikan, jadi itulah mengapa mencoba mengakses kotak surat).

Kemungkinan lain adalah menambahkan baris berikut ke bagian atas skrip:

#!/usr/bin/env python

Ini akan menginstruksikan shell Anda untuk mengeksekusi skrip melalui pythonalih-alih mencoba menafsirkannya sendiri.

Tamás
sumber
10
Atau #!/usr/bin/python/
kirbyfan64sos
13
Yup, kecuali pythonberada di tempat lain. Saya lebih suka menggunakan envsolusi berbasis karena itu hanya mencari Python di jalur default pengguna.
Tamás
Hmmm ... Aku belum pernah dengar itu. Sangat benar.
kirbyfan64sos
2
luar biasa - terima kasih telah menunjukkan kesalahan siswa saya. im membuat transisi dari mengetik di prompt perintah python ke menjalankan skrip.
brucezepplin
Terima kasih. Saya bukan pembuat kode python tetapi saya harus melakukan ini untuk tugas saya.
arn-arn
14

Saya mengalami kesalahan serupa

"dari: tidak bisa membaca /var/mail/django.test.utils"

saat mencoba menjalankan perintah

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

dalam tutorial di https://docs.djangoproject.com/en/1.8/intro/tutorial05/

setelah membaca jawaban Tamás saya menyadari bahwa saya tidak mencoba perintah ini di shell python tetapi di termnial (ini dapat terjadi pada mereka yang baru mengenal linux)

solusinya adalah pertama-tama masuk ke shell python dengan perintah python dan ketika Anda mendapatkan ini >>> lalu jalankan perintah python apa pun

Ehsan Quranwala
sumber
5

Sama disini. Saya mengalami kesalahan ini saat menjalankan perintah impor dari terminal tanpa mengaktifkan shell python3 melalui manage.py dalam proyek django (ya, saya masih pemula). Seperti yang diharapkan, mengaktifkan shell memungkinkan perintah diinterpretasikan dengan benar.

./manage.py shell

dan baru kemudian

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

Letakkan ini di bagian atas file .py Anda (untuk python 2.x)

#!/usr/bin/env python 

atau untuk python 3.x

#!/usr/bin/env python3

Ini harus mencari lingkungan python, tanpa itu, itu akan mengeksekusi kode seolah-olah itu bukan kode python, tetapi langsung ke CLI. Jika Anda perlu menentukan lokasi manual dari lingkungan python put

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

Saya mendapat kesalahan yang sama karena saya mencoba untuk terus berlari

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

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

Untuk mengatasi ini, ketik perintah python dan ketika Anda mendapatkan >>> ini kemudian jalankan perintah python apa pun

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

untuk Mac OS cukup buka aplikasi dan jalankan saja Script Install Certificates.command ini dan Perbarui Shell Profile.command, sekarang ini akan berfungsi.

Suraj Kumar
sumber