2016-03-08 20 views

答えて

7

python script.pyで実行しているものはPythonプログラムです。次に、パラメーターで指定したスクリプト、つまりscript.py(基本的にテキストファイル)をロードして実行します。スクリプトファイルは実行ファイルである必要はありません。ここで実行されるのはPythonインタプリタです(Pythonバイナリ自体で、明らかにx権限が必要です)。

.\script.pyでは、スクリプト(同じテキストファイル)をプログラムとして直接実行しようとします。これを行うと、スクリプトコードの最初の行に指定したインタプリタ( "shebang"、例: #!/usr/bin/env pythonx権限で設定されていない場合、OSはファイルを "実行"しようとしません(ただし、デフォルトのプログラムで開くこともできます)ので、シバンは気にしません。

+1

、それを実行する必要がある必要があるとして、我々は、スクリプトを実行していたんだろう何をしていますこの仕組みの詳細については、Unixのシバンを探してください。https://en.wikipedia.org/wiki/Shebang_%28Unix%29 – xvan

4

ファイル自体を最初の例で実際に実行されるのではなく)。 Pythonアプリケーションは、実行権限が必要です。

2番目の例では、ファイル自体が実行されているため、処理を続けるためにこれらの権限が必要です。

2

python script.pyというスクリプトを実行すると、実際には一般に/usr/bin/pythonにあるPythonインタープリタが呼び出されます(正確な出力はwhich pythonになります)。

インタプリタはスクリプトを読み取り、コードを実行します。 実行許可を持つインタプリタです。

./script.pyとしてスクリプトを実行すると、スクリプトが直接実行されるため、スクリプトには実行権限が必要です。使用されるインタプリタは、シバンラインで指定されます。

最初の2バイトが#!であることをカーネルが検出すると、残りの行がインタープリターとして使用され、そのファイルが引数として渡されます。これを行うには、ファイルに実行権限が必要であることに注意してください。前者の場合では、間接的にカーネルが通訳を方法1によって実行するための短期で./script.py

のみ読み取り許可が、後のために、それは学ぶために直接

関連する問題