script1.py という名前の Python スクリプトがあります。このようにターミナルで実行できます:
python /path/script1.py
...
しかし、私はコマンドラインプログラムのように実行したい:
arbitraryname
...
どうすればできますか?
script1.py という名前の Python スクリプトがあります。このようにターミナルで実行できます:
python /path/script1.py
...
しかし、私はコマンドラインプログラムのように実行したい:
arbitraryname
...
どうすればできますか?
スクリプトの開始時にシバン行を使用します。
#!/usr/bin/env python
ファイルを実行可能にします。
chmod +x arbitraryname
PATH 上のディレクトリに配置します (シンボリックリンクにすることができます):
cd ~/bin/
ln -s ~/some/path/to/myscript/arbitraryname
次の 3 つの部分があります。
スクリプトの先頭にシバンを追加して、スクリプトを解析するときに使用するインタープリターをシェルが認識できるようにする必要があります。一般的には次のとおりです。
#!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 の最後に追加する必要があります
次の行を先頭に追加しますscript1.py
#!/usr/bin/env python
次に、スクリプトを実行可能にします。
$ chmod +x script1.py
スクリプトがPATH
変数に表示されるディレクトリにある場合は、次のように入力するだけです。
$ script1.py
それ以外の場合は、フル パス (絶対パスまたは相対パス) を指定する必要があります。これには、現在の作業ディレクトリが含まれますが、PATH
.
$ ./script1.py
hashbangを使用する必要があります。これを Python スクリプトの最初の行に追加します。
#! <full path of python interpreter>
次に、ファイルのパーミッションを変更し、実行パーミッションを追加します。
chmod +x <filename>
そして最後にそれを使用して実行します
./<filename>
現在のディレクトリにある場合、