web-dev-qa-db-ja.com

明示的に `python`を呼び出さずにPythonスクリプトを実行する

私はDebian Linuxを使っています。

script.pyの代わりに)python script.pyとタイプすることによって、端末ですべてのPythonスクリプトを実行するように設定する方法があるかどうか疑問に思いました。

34
user2018084

あなたがする必要がある2つの事があります:

  • ファイルが実行可能であることを確認してください。chmod +x script.py
  • Shebangを使用して、使用するインタプリタをカーネルに知らせます。スクリプトの先頭行は次のようになります。

    #!/usr/bin/python
    

    これはあなたのスクリプトがデフォルトのPythonで動作することを前提としています。特定のバージョンが必要な場合は、Shebangで指定してください。

    #!/usr/bin/python2.7
    

今、あなたはタイプすることができます:

    ./script.py

スクリプトが現在のディレクトリにある場合、または

    script.py

スクリプトの場所がたまたまPATH内にある場合、または

    path/to/script.py

さもないと。

54
Paul

Linuxでは、単にhashbang(別名Shebang)を使うことができます。行を追加

#!/usr/bin/python

デフォルトのPythonインタプリタを実行したい場合。

#!/path/to/python[x.x]

特定のバージョンを使用する

#!/usr/bin/env python

あなたが環境にpythonを見つけて欲しいなら。

スクリプトを実行可能にする必要もあります。

chmod +x script[.py] 
31
Gaurav Joseph

つかいます:

#!/usr/bin/env python

これにより、ユーザーが使用する予定のPythonがスクリプトを実行するものになります。ユーザーがvirtualenvを使用して特定の環境で特定のバージョンのpythonを使用している場合、これは特に重要です。

1
Cory Klein

以下のように、スクリプトの先頭にShebang行を使用してください。

!/ usr/bin/python

スクリプトを実行したい適切なpythonバージョンを更新してください。例えばPython 3.6では

!/usr/bin/python3.6

デフォルトのインタプリタ用

!/ usr/bin/python

注:スクリプトに実行権限があることを確認してください。

0
Suraj Bora