48

script1.py という名前の Python スクリプトがあります。このようにターミナルで実行できます:

python /path/script1.py
...

しかし、私はコマンドラインプログラムのように実行したい:

arbitraryname
...

どうすればできますか?

4

4 に答える 4

83

スクリプトの開始時にシバン行を使用します。

#!/usr/bin/env python

ファイルを実行可能にします。

chmod +x arbitraryname

PATH 上のディレクトリに配置します (シンボリックリンクにすることができます):

cd ~/bin/
ln -s ~/some/path/to/myscript/arbitraryname
于 2013-03-23T14:31:42.653 に答える
50

次の 3 つの部分があります。

  1. スクリプトの先頭に「シバン」を追加して、スクリプトの実行方法を指示します
  2. スクリプトに「実行」権限を付与します。
  3. PATH にスクリプトを作成して、どこからでも実行できるようにします。

シバンの追加

スクリプトの先頭にシバンを追加して、スクリプトを解析するときに使用するインタープリターをシェルが認識できるようにする必要があります。一般的には次のとおりです。

#!path/to/interpretter

マシン上の Python インタープリターへのパスを見つけるには、次のコマンドを実行します。

which python

これにより、PATH が検索され、python 実行可能ファイルの場所が見つかります。シバンを形成するために使用できる絶対パスが返されるはずです。シバンが Python スクリプトの先頭にあることを確認します。

#!/usr/bin/python

実行権限

スクリプトをコマンドとして使用しようとしたときに実際に実行したいことをシェルが認識できるように、実行許可でスクリプトをマークする必要があります。これを行うには、次のコマンドを実行できます。

chmod +x myscript.py

スクリプトをパスに追加します

PATH 環境変数は、実行しようとしているコマンドを探すときにシェルが検索するディレクトリの順序付きリストです。したがって、Python スクリプトをどこからでも実行できるコマンドにしたい場合は、それを PATH に入れる必要があります。次のコマンドを実行すると、パスの内容を確認できます。

echo $PATH

これにより、各ディレクトリがセミコロンで区切られた長いテキスト行が出力されます。PATH から実行している実行可能ファイルの実際の場所がどこにあるのか疑問に思っているときはいつでも、次のコマンドを実行して見つけることができます。

which <commandname>

ここで、2 つのオプションがあります。スクリプトを既に PATH にあるディレクトリに追加するか、新しいディレクトリを PATH に追加します。通常、ユーザーのホーム ディレクトリにディレクトリを作成し、それを PATH に追加します。パスに何かを追加するには、次のコマンドを実行できます。

export PATH=/my/directory/with/pythonscript:$PATH

これで、Python スクリプトをコマンドとしてどこでも実行できるはずです。しかし!シェル ウィンドウを閉じて新しいウィンドウを開くと、新しいウィンドウは PATH に加えた変更を記憶しません。したがって、この変更を保存したい場合は、そのコマンドを .bashrc または .bash_profile の最後に追加する必要があります

于 2013-03-23T14:46:54.493 に答える
12

次の行を先頭に追加しますscript1.py

#!/usr/bin/env python

次に、スクリプトを実行可能にします。

$ chmod +x script1.py

スクリプトがPATH変数に表示されるディレクトリにある場合は、次のように入力するだけです。

$ script1.py

それ以外の場合は、フル パス (絶対パスまたは相対パス) を指定する必要があります。これには、現在の作業ディレクトリが含まれますがPATH .

$ ./script1.py
于 2013-03-23T14:31:31.033 に答える
2

hashbangを使用する必要があります。これを Python スクリプトの最初の行に追加します。

#! <full path of python interpreter>

次に、ファイルのパーミッションを変更し、実行パーミッションを追加します。

chmod +x <filename>

そして最後にそれを使用して実行します

./<filename>

現在のディレクトリにある場合、

于 2013-03-23T14:32:05.113 に答える