पायथन त्रुटि "से: नहीं पढ़ सकते हैं / var / mail / Bio"


92

मैं एक (बायो) पायथन स्क्रिप्ट चला रहा हूं, जिसके परिणामस्वरूप निम्न त्रुटि होती है:

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

क्योंकि मेरी स्क्रिप्ट में मेल के साथ कुछ भी नहीं है, मुझे समझ नहीं आ रहा है कि मेरी स्क्रिप्ट / var / मेल में क्यों दिख रही है।

यहाँ समस्या क्या लगती है? मुझे संदेह है कि यह मदद करेगा क्योंकि स्क्रिप्ट समस्या नहीं लगती है, लेकिन यहाँ मेरी स्क्रिप्ट वैसे भी है:

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

यहां क्या समस्या है? बुरा अजगर सेटअप? मुझे नहीं लगता कि यह स्क्रिप्ट है।

जवाबों:


189

नहीं, यह स्क्रिप्ट नहीं है, यह तथ्य है कि आपकी स्क्रिप्ट पायथन द्वारा निष्पादित नहीं की गई है। यदि आपकी स्क्रिप्ट नाम की फ़ाइल में संग्रहीत है script.py, तो आपको इसे निष्पादित करना होगा python script.py, अन्यथा डिफ़ॉल्ट शेल इसे निष्पादित करेगा और यह fromकीवर्ड पर जमानत कर देगा । (संयोग से, fromएक कमांड लाइन उपयोगिता का नाम है जो उन लोगों के नाम प्रिंट करता है, जिन्होंने दिए गए उपयोगकर्ता नाम पर मेल भेजा है, इसीलिए यह मेलबॉक्सों तक पहुंचने की कोशिश करता है)।

एक अन्य संभावना स्क्रिप्ट के शीर्ष पर निम्नलिखित पंक्ति को जोड़ना है:

#!/usr/bin/env python

यह आपके शेल को स्क्रिप्ट को निष्पादित करने का निर्देश देगा, pythonइसके बजाय इसे स्वयं व्याख्या करने की कोशिश करेगा।


10
या #!/usr/bin/python/
— kirbyfan64sos

13
हाँ, जब तक pythonकहीं और स्थित नहीं है। मैं- envआधारित समाधान का उपयोग करना पसंद करता हूं क्योंकि यह केवल उपयोगकर्ता के डिफ़ॉल्ट पथ में पायथन को देखता है।
— तामेस

हम्मम ... मैंने ऐसा कभी नहीं सुना। सच सच।
— kirbyfan64sos

2
उत्कृष्ट - मेरी स्कूली त्रुटि को इंगित करने के लिए धन्यवाद। स्क्रिप्ट को निष्पादित करने के लिए अजगर कमांड प्रॉम्प्ट पर टाइपिंग से संक्रमण बनाना।
— ब्रूसेज़प्लिन

धन्यवाद। मैं एक अजगर कोडर नहीं हूं, लेकिन मुझे अपने असाइनमेंट के लिए ऐसा करना होगा।
— arn-arn

14

मैं एक समान त्रुटि में भाग गया

"से: /var/mail/django.test.utils नहीं पढ़ सकते हैं"

जब एक कमांड चलाने की कोशिश कर रहा हो

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

https://docs.djangoproject.com/en/1.8/intro/tutorial05/ पर ट्यूटोरियल में

तमस्स के उत्तर को पढ़ने के बाद मैंने महसूस किया कि मैं इस आदेश को अजगर के खोल में नहीं देख रहा था, लेकिन इस शब्दावली में (यह उन नए लिनक्स के लिए हो सकता है)

समाधान पहले पायथन शेल में कमांड अजगर के साथ दर्ज करना था और जब आपको ये मिलें >>> तो किसी भी अजगर कमांड को चलाएं


5

मुझे भी। मुझे यह त्रुटि तब हुई जब एक django प्रोजेक्ट में मैनेज़म्यूड के माध्यम से python3 शेल को सक्रिय किए बिना टर्मिनल से एक इंपोर्ट कमांड चलाया (हाँ, मैं अभी तक एक नौसिखिया हूँ)। जैसा कि एक को उम्मीद करनी चाहिए, सक्रिय शेल ने कमांड को सही ढंग से व्याख्या करने की अनुमति दी।

./manage.py shell

और उसके बाद ही

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

3

इसे अपने .py फ़ाइल के शीर्ष पर रखें (अजगर 2.x के लिए)

#!/usr/bin/env python 

या अजगर 3.x के लिए

#!/usr/bin/env python3

यह अजगर पर्यावरण को देखना चाहिए, इसके बिना, यह कोड को निष्पादित करेगा जैसे कि यह अजगर कोड नहीं था, लेकिन सीधे सीएलआई के लिए। यदि आपको अजगर पर्यावरण के एक मैनुअल स्थान को निर्दिष्ट करने की आवश्यकता है

#!/#path/#to/#python

1

मुझे वही त्रुटि मिली क्योंकि मैं चलाने की कोशिश कर रहा था

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

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

इसे हल करने के लिए, कमांड अजगर टाइप करें और जब आप ये प्राप्त करें >>> तब किसी भी अजगर कमांड को चलाएं

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

-1

Mac OS के लिए, केवल एप्लिकेशन पर जाएं और केवल इन लिपियों को स्थापित करें प्रमाणपत्र सर्टिफिकेट .mand चलाएं और Shell Profile.command को अपडेट करें, अब यह काम करेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.