「から:Pythonのエラーを取得できません:/ var / mail / Bioを読み取ることができません」


92

次のエラーが発生する(bio)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の設定が間違っていますか?本当にスクリプトだとは思わない。

回答:


189

いいえ、それはスクリプトではなく、スクリプトがPythonによってまったく実行されないという事実です。スクリプトがという名前のファイルに保存されている場合は、script.pyとして実行する必要がpython script.pyあります。そうでない場合、デフォルトのシェルがスクリプトを実行し、fromキーワードで救済されます。(ちなみに、fromは、特定のユーザー名にメールを送信した人の名前を出力するコマンドラインユーティリティの名前です。そのため、メールボックスにアクセスしようとします)。

別の可能性は、スクリプトの先頭に次の行を追加することです:

#!/usr/bin/env python

これpythonにより、独自にスクリプトを解釈するのではなく、スクリプトを実行するようにシェルに指示します。


10
または#!/usr/bin/python/
kirbyfan64sos 2013

13
うん、pythonどこかにない限り。- envベースのソリューションは、ユーザーのデフォルトパスでPythonを検索するだけなので、使用することを好みます。
タマシュ

うーん...それについて聞いたことがない。とても本当です。
kirbyfan64sos 2013

2
すばらしい-生徒のエラーを指摘してくれてありがとう。pythonコマンドプロンプトでの入力からスクリプトの実行に移行します。
ブルースゼップリン2013

ありがとうございました。私はpythonコーダーではありませんが、割り当てのためにこれを行う必要があります。
arn-arn

14

私は同様のエラーに遭遇しました

"from:ca n't read /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/

Tamásの回答を読んだ後、私はこのコマンドをPythonシェルではなくターミナルで試していることに気付きました(これはLinuxの初心者に起こる可能性があります)

解決策は、最初にpythonシェルでコマンドpythonを入力し、これらを取得したら>>>、任意のpythonコマンドを実行することでした。


5

こっちも一緒。djangoプロジェクトでmanage.pyを介してpython3シェルをアクティブ化せずにターミナルからインポートコマンドを実行すると、このエラーが発生しました(はい、私はまだ初心者です)。当然のことながら、シェルをアクティブにすると、コマンドが正しく解釈されます。

./manage.py shell

そしてそれから

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

3

これを.pyファイルの先頭に置きます(python 2.xの場合)

#!/usr/bin/env python 

またはpython 3.xの場合

#!/usr/bin/env python3

これはpython環境をルックアップするはずです。それがないと、Pythonコードではないかのようにコードを実行しますが、CLIに直接アクセスします。Python環境の手動の場所を指定する必要がある場合は、

#!/#path/#to/#python

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

-1

Mac OSの場合、アプリケーションに移動してこれらのスクリプトを実行するだけです。InstallCertificates.commandとUpdate Shell Profile.commandを実行するだけです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.