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


39

Debian Linuxを使用しています。

(ではなく)と入力することで、ターミナルですべての Pythonスクリプトを実行するように構成する方法があるかどうか疑問に思いました。script.pypython script.py

回答:


58

必要なことが2つあります。

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

    #!/usr/bin/python
    

    これは、スクリプトがデフォルトのpythonで実行されることを前提としています。特定のバージョンが必要な場合は、シェバンで指定するだけです。

    #!/usr/bin/python2.7
    

次のように入力できます:

    ./script.py

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

    script.py

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

    path/to/script.py

さもないと。


32
一般に#!/usr/bin/env python、ユーザーがPythonのローカルビルド(例:)を持っている場合は/usr/local/bin、スクリプトを実行したい場合に、を使用することをお勧めします。
サピ14年

3
@sapi Debianによると、少なくともdevポリシーではそうではありません。独自のスクリプトを作成している場合は、当然のことながらリスクを受け入れることができます。明示する方が良いでしょう。あなたが地元のものが欲しいなら、シバンでそれを選んでください。
ポール14年

3
そうではありませんbash、それは...実行ファイルを読み込む
unperson325680

これが真である@progo -あなたが改善の恩恵を受けるだろうと思うという答えを見れば、それを先に行くと、編集することをノート、改善は常に歓迎されている
ポール

する必要があります./script.py、ないscript.py
ポールドレイパー14年

33

Linuxでは、単純にhashbang(別名shebang)を使用できます。行を追加

#!/usr/bin/python

デフォルトのPythonインタープリターを実行する場合。

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

特定のバージョンを使用する、または

#!/usr/bin/env python

環境でpythonを見つけたい場合。

また、スクリプトを実行可能にする必要があります

chmod +x script[.py] 

2

つかいます:

#!/usr/bin/env python

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


0

以下のように、スクリプトの先頭にシェバン行を使用します。

!/ usr / bin / python

スクリプトを実行する適切なPythonバージョンを更新します。例:Python 3.6の場合

!/usr/bin/python3.6

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

!/ usr / bin / python

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.