我正在运行(生物)python脚本,导致以下错误:
from: can't read /var/mail/Bio
Run Code Online (Sandbox Code Playgroud)
看到我的脚本与邮件没有任何关系,我不明白为什么我的脚本在查找/ 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()
Run Code Online (Sandbox Code Playgroud)
这里有什么问题?糟糕的python设置?我真的不认为这是剧本.
Tam*_*más 165
不,这不是脚本,事实上你的脚本根本不是由Python执行的.如果你的脚本存储在一个名为的文件中script.py,你必须执行它python script.py,否则默认的shell将执行它,它将在from关键字处拯救.(顺便说一句,from是命令行实用程序的名称,它打印已将邮件发送到给定用户名的人的名称,这就是它尝试访问邮箱的原因).
另一种可能性是将以下行添加到脚本的顶部:
#!/usr/bin/env python
Run Code Online (Sandbox Code Playgroud)
这将指示您的shell执行脚本,python而不是尝试自己解释它.
小智 12
我遇到了类似的错误
"来自:无法读取/var/mail/django.test.utils"
在尝试运行命令时
>>> from django.test.utils import setup_test_environment
>>> setup_test_environment()
Run Code Online (Sandbox Code Playgroud)
在https://docs.djangoproject.com/en/1.8/intro/tutorial05/的教程中
在读完Tamás的答案之后,我意识到我没有在python shell中尝试这个命令但是在termnial中(这可能发生在那些刚接触linux的人身上)
解决方案是首先使用命令python进入python shell,当你得到这些>>>然后运行任何python命令
小智 5
同样在这里。我在从终端运行导入命令时遇到了这个错误,而没有通过 django 项目中的 manage.py 激活 python3 shell(是的,我还是个新手)。正如人们所期望的那样,激活 shell 允许正确解释命令。
./manage.py shell
Run Code Online (Sandbox Code Playgroud)
然后才
>>> from django.contrib.sites.models import Site
Run Code Online (Sandbox Code Playgroud)
小智 5
将其放在 .py 文件的顶部(对于 Python 2.x)
#!/usr/bin/env python
Run Code Online (Sandbox Code Playgroud)
或对于 Python 3.x
#!/usr/bin/env python3
Run Code Online (Sandbox Code Playgroud)
这应该查找 Python 环境。如果没有它,它将执行代码,就好像它不是 Python 代码,而是 shell 代码。如果需要手动指定Python环境的位置,则输入
#!/#path/#to/#python
Run Code Online (Sandbox Code Playgroud)