"Kaynak: okunamıyor / var / mail / Bio" Python hatası alınıyor


92

Aşağıdaki hatayla sonuçlanan bir (bio) python betiği çalıştırıyorum:

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

Komut dosyamın postayla ilgisi olmadığı için komut dizimin neden / var / mail içine baktığını anlamıyorum.

Burada sorun ne gibi görünüyor? Senaryo sorun görünmediğinden yardımcı olacağından şüpheliyim, ama yine de benim senaryom:

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

buradaki sorun nedir? kötü python kurulumu? Gerçekten bunun senaryo olduğunu sanmıyorum.

Yanıtlar:


190

Hayır, bu senaryo değil, betiğinizin Python tarafından hiç çalıştırılmadığı gerçeğidir. Betiğiniz adlı bir dosyada saklanıyorsa, script.pyonu olduğu gibi çalıştırmanız gerekir python script.py, aksi takdirde varsayılan kabuk onu çalıştırır ve fromanahtar kelimeden kurtarılır. (Bu arada, fromverilen kullanıcı adına posta gönderenlerin adlarını yazdıran bir komut satırı yardımcı programının adıdır, bu nedenle posta kutularına erişmeye çalışır).

Başka bir olasılık da aşağıdaki satırı komut dosyasının üstüne eklemektir:

#!/usr/bin/env python

Bu, kabuğunuza betiği pythonkendi başına yorumlamaya çalışmak yerine çalıştırması talimatını verecektir .


10
Or #!/usr/bin/python/
kirbyfan64sos

13
Evet, pythonbaşka bir yerde bulunmadığı sürece . envBasitçe kullanıcının varsayılan yolunda Python'u aradığı için tabanlı çözümü kullanmayı tercih ediyorum .
Tamás

Hmmm ... Bunu hiç duymadım. Çok doğru.
kirbyfan64sos

2
mükemmel - okul çocuğu hatamı belirttiğin için teşekkürler. python komut istemine yazmaktan komut dosyalarını yürütmeye geçiş yapıyorum.
brucezepplin

teşekkür ederim. Ben bir python kodlayıcı değilim ama bunu ödevim için yapmalıyım.
arn-arn

14

Benzer bir hatayla karşılaştım

"from: /var/mail/django.test.utils okunamıyor"

bir komutu çalıştırmaya çalışırken

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

https://docs.djangoproject.com/en/1.8/intro/tutorial05/ adresindeki eğiticide

Tamás'ın cevabını okuduktan sonra bu komutu python kabuğunda değil, terminalde denediğimi fark ettim (bu, linux'ta yeni olanların başına gelebilir)

çözüm, ilk önce python komutuyla python kabuğuna girmek ve bunları aldığınızda >>> herhangi bir python komutunu çalıştırmaktı


5

Burada aynı. Bir django projesinde manage.py aracılığıyla python3 kabuğunu etkinleştirmeden terminalden içe aktarma komutu çalıştırırken bu hatayı yaşadım (evet, henüz acemiyim). Bekleneceği gibi, kabuğun etkinleştirilmesi komutun doğru şekilde yorumlanmasına izin verdi.

./manage.py shell

ve ancak o zaman

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

3

Bunu .py dosyanızın en üstüne koyun (python 2.x için)

#!/usr/bin/env python 

veya python 3.x için

#!/usr/bin/env python3

Bu, python ortamına bakmalı, onsuz, kodu python kodu değil, doğrudan CLI'ye çalıştırır. Python ortamının manuel konumunu belirtmeniz gerekiyorsa,

#!/#path/#to/#python

1

Aynı hatayı aldım çünkü devam etmeye çalışıyordum

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

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

Bunu çözmek için, command python yazın ve bunları aldığınızda >>> herhangi bir python komutunu çalıştırın.

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

-1

Mac OS için sadece uygulamalara gidin ve sadece bu Komut Dosyalarını çalıştırın Certificates.command ve Update Shell Profile.command komutunu çalıştırın, şimdi çalışacaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.