web-dev-qa-db-ja.com

python .py拡張子のないターミナルからのスクリプトの実行

ターミナルからpython script script.pyと入力するだけでscriptと呼び出します。これは可能ですか?可能な場合、どのようにですか?

スクリプトの先頭に#!/ usr/bin/env pythonを追加することでpython script.pyの入力を回避できることはわかっていますが、サフィックスを追加する必要があります。pyスクリプトを実行するため。

14
jmau5

Unix/Linuxファイルシステムは、Windowsのように拡張機能に依存しません。 .pyそれを実行するためにファイルの最後に。

インタプリタで呼び出すことでファイルを実行できます:

python ScriptFile

または、実行可能としてマークし、最初の行にインタープリターを定義します(例:#!/usr/bin/python)。

次の方法でファイルを実行できない場合:

/Path/to/ScriptFile

権限を確認してください

ls -l ScriptFile

実行可能フラグを追加してchmodを追加すると、実行可能になります。

カスタムスクリプトを定期的に使用している場合は、スクリプトを保存するディレクトリがPATH環境変数に追加されていることを確認してください。

21
Patrick

.py拡張子は、スクリプトの実行には不要です。スクリプトを実行可能にする必要があるだけです(例:chmod a+x script)とShebang行(#!/usr/bin/env python)。

5
daniel kullmann

オプションとして、スクリプトのラッパー(.pyファイル)を作成できます。

たとえば、スクリプトrunme.pyがあるため、新しいファイルrunmeを作成してスクリプトをラップできます。

#!/usr/bin/env python
import runme

次に、シェルでrunmeを呼び出すだけでrunme.py機能を呼び出します。

これは、マルチプラットフォームスクリプトに役立ちます。Windowsプラットフォームでは、.pyファイルを名前なしで呼び出すことができ、拡張子なしでShebangをヘッダーに含めることができますが、Linuxプラットフォームではできません。したがって、ラッパーが出てきます。

4
rook