获取Python错误“来自:无法读取/ var / mail / Bio”

时间:2013-04-17 20:37:12

标签: python

我正在运行(生物)python脚本,导致以下错误:

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

看到我的脚本与邮件没有任何关系,我不明白为什么我的脚本会查找/ var / mail。

这里似乎有什么问题?我怀疑它会有所帮助,因为脚本似乎不是问题,但无论如何这里是我的脚本:

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

这里有什么问题?糟糕的python设置?我真的不认为这是剧本。

6 个答案:

答案 0 :(得分:147)

不,这不是脚本,事实上你的脚本根本不是由Python执行的。如果您的脚本存储在名为script.py的文件中,则必须将其作为python script.py执行,否则默认的shell将执行它,它将以from关键字进行挽救。 (顺便说一句,from是命令行实用程序的名称,它打印已将邮件发送到给定用户名的人的名称,这就是它尝试访问邮箱的原因。)

另一种可能性是将以下行添加到脚本的顶部:

#!/usr/bin/env python

这将指示您的shell通过python执行脚本,而不是试图自己解释它。

答案 1 :(得分:9)

我遇到了类似的错误

“from:无法读取/var/mail/django.test.utils”

尝试运行命令时

>>> from django.test.utils import setup_test_environment
>>> setup_test_environment()
<{3}}

中的教程中的

在阅读了Tamás的答案之后 我意识到我没有在python shell中尝试这个命令,而是在termnial中(这可能发生在那些刚接触linux的人身上)

解决方案是首先使用命令python进入python shell 当你得到这些&gt;&gt;&gt; 然后运行任何python命令

答案 2 :(得分:4)

同样在这里。从终端运行导入命令而没有通过django项目中的manage.py激活python3 shell时出现此错误(是的,我还是新手)。正如人们所期望的那样,激活shell允许正确解释命令。

./manage.py shell

然后才

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

答案 3 :(得分:3)

将其放在.py文件顶部

#!/usr/bin/env python 

对于python 2.x,或

#!/usr/bin/env python3

对于python 3.x

这应该查找python环境,没有它,它将执行代码,就好像它不是python代码,而是直接进入CLI。如果您需要指定python环境的手动位置,请放

#!/#path/#to/#python

答案 4 :(得分:1)

我遇到了同样的错误,因为我试图继续运行

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

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

要解决此问题,请键入命令 python ,然后在获得这些信息时>>> 然后运行任何python命令

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

答案 5 :(得分:-1)

对于Mac OS,只需转到应用程序并运行以下脚本即可:Install Certificates.command和Update Shell Profile.command,现在可以使用。