2017-06-02 12 views
-1

私はPythonでコメント行の問題があります。私はvimのでages.pyを作成し、ここで私はPythonはenv pythonで追加のコメントを許可していません

# this is a python script 
#!/usr/bin/env python 
ages={"dad":42, "mom":35, "lisa":7} 
for item in ages: 
     print item 

のように、!/usr/bin上記のコメントを追加すると私のスクリプト

#!/usr/bin/env python 
ages={"dad":42, "mom":35, "lisa":7} 
for item in ages: 
     print item 

であると私は同じスクリプトが含まれたディレクトリに戻った後、およびターミナルages.pyへの書き込みでスクリプトを実行するが、私は私が#!/usr/bin/env python行を削除するとことを知って、このエラー

$ ./ages.py 
./ages.py: line 3: mom:35,: command not found 
./ages.py: line 5: syntax error near unexpected token `print' 
./ages.py: line 5: 'print item' 

を取得#は完全にコメントとして機能します。しかし、私はこの行を追加して、スクリプトを実行してその名前をプロンプトに書き出すだけです。それ以外の場合は、実行するたびにと書く必要があります。これは負担です。

第一Q:どのように私はまだ '#は/ usr/binに/ envをパイソン!' 行

PSを持つ.pyスクリプトにコメントすることができます:私はすでにコメント行の前と後に"""'''を試してみましたそれはどちらもうまくいかない。

第2のQ:.pyスクリプトをPython環境で実行する方法はありますか?たとえば、私は.mファイルをオクターブで実行するだけで、その名前をコマンドラインに書き込むことができます。しかし、私はPythonで同じ方法があるかどうかわかりませんでしたか?

P.S:質問はとても簡単で、-1に値すると思いますが、新しいPythonユーザーにとっては、すべての回答が素晴らしい情報を提供します。それはとても微妙な解決策ですが、私は常にエラーを持っています。

+5

ただ、それは完全に – MSeifert

+0

おかげで、シンプルなソリューションをあなたのコメントを入れて、それらのエラーが原因で第一として、適切なシェバングずに起こりますあなたのシェルはスクリプトが普通のシェルスクリプトだと仮定しているので、shやbashスクリプトとして解釈しようとしています。 –

+2

FWIWに動作します** '#!は/ usr/binに/のenv python'行の後** –

答えて

2
  1. #!/usr/bin/env pythonを含む行は最初に、あなたは以下のあなたのコメントを追加することができなければなりません。

  2. はい、これは次のようにすることができます:exec(open('yourscript.py').read()) - ただし、結果が期待と異なる場合があります。

3

最初の行は非常に重要です。それはハッシュバングと呼ばれ、時にはシバンとして知られています。スクリプトを実行するためにどのインタプリタを使用するかはオペレーティングシステムに通知されます。シバンが使用されるとき、それは最初の行でなければなりません。その他のバリエーションは次のとおりです。

#!/bin/sh 
#!/usr/bin/perl/ 
#!/usr/bin/python 

これは、システムのデフォルトのsh、perl、およびpythonです。コード内の他のコメントは、この行の後になければなりません。

関連する問題