ターミナルで.py拡張子なしでPythonスクリプトを実行する

ターミナルで.py拡張子なしでPythonスクリプトを実行する

Pythonスクリプトを呼び出したいです。script.py端末で入力するだけスクリプト。可能ですか?それでは、どうすればいいですか?

私は入力を避けることができることを知っています。Python script.py増やすことで#!/usr/bin/env Pythonスクリプトの先頭に追加する必要がありますが、まだサフィックスを追加する必要があります。.pyスクリプトを実行するには。

答え1

Unix / Linuxファイルシステムは、Windowsなどの拡張に依存しません。.py実行するためにファイルの末尾に追加する必要はありません。

インタプリタを使用してこのファイルを呼び出して実行できます。

python ScriptFile

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

以下を使用してファイルを実行できない場合:

/Path/to/ScriptFile

権限の確認

ls -l ScriptFile

chmod実行可能フラグを追加して実行する必要があるかもしれません。

カスタムスクリプトを頻繁に使用する場合は、そのスクリプトが保存されているディレクトリがPATH環境変数に追加されていることを確認できます。

答え2

.pyスクリプトの実行に拡張は必要ありません。スクリプトを実行可能にし(例:を実行してchmod a+x script)、shebang行(#!/usr/bin/env python)を追加するだけです。

答え3

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

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

#!/usr/bin/env python
import runme

その後、その関数はシェルから呼び出すだけでrunme.py簡単に呼び出すことができます。runme

.pyWindowsプラットフォームでは、拡張子なしでファイルを名前で呼び出すように指定できるため、マルチプラットフォームスクリプトに役立ちます。シェルボーンヘッダーにありますが、Linuxプラットフォームではそれを行うことができないので、ラッパーがあります。

関連情報