基本的なPythonスクリプトがあり、それがハッシュバングで何が配置されていない場合、Linuxのターミナルから次のように実行できます。
/path/to/file/MyScript [args]
インタプリタやファイル拡張子を介して実行することなく、プログラムを実行します。
簡単に入力できるように、このスクリプトをインストールしますか
MyScript [args]
システムのどこかで実行されますか?これはシステムのすべてのユーザーに実装できますか、それともユーザーごとに再実行する必要がありますか?スクリプトを特定のディレクトリに置くだけですか、それとも他のものが必要ですか?
このようなものを置くのに最適な場所は/usr/local/bin
。
これは、カスタムインストールされたバイナリを配置する通常の場所であり、PATH
の初期に配置する必要があります。
そこにスクリプトをコピーするだけで(おそらくSudo
を使用して)、どのユーザーでも機能するはずです。
作成pythonスクリプト:
cd /home/el/bin
touch stuff.py
chmod +x stuff.py
あなたのpythonは:を見つける
which python
/usr/bin/python
このコードをそこに入れます:
#!/usr/bin/python
print "hi"
同じディレクトリで実行:
python stuff.py
ディレクトリを上に移動すると、使用できません:
cd ..
stuff.py
-bash: stuff.py: command not found
見つかりません!予想どおり、pythonファイルを$ PATHに追加)のファイルパスを追加します
vi ~/.bashrc
ファイルを追加します:
export PATH=$PATH:/home/el/bin
保存して、.bashrcを再適用し、再試行します
source ~/.bashrc
再試行:
cd /home/el
stuff.py
プリント:
hi
コツは、bash ShellがShebang経由でファイルの言語を知っていることです。
~/bin
を作成し、export PATH=$PATH:$HOME/bin
をbashrc/profileに配置するだけです。システムを台無しにしないでください、それはwillかみつき、信頼してください。
いくつかのこと(質問に関連するが、回答の一部ではない):
export PATH=$HOME/bin:$PATH
は安全ではありません。bashは~/bin
フォルダーで実行可能ファイルを探し、それらの名前が元の$PATH
の他の実行可能ファイルと一致すると、予期しないことに驚かれるからです。 /非動作コマンドの実行。chmod+x
に保存するときは、~/bin
を忘れないでください。~/bin
フォルダーに何を入れているかに注意してください。何かをテストしたり、未完成のスクリプトで作業している場合は、常にCWD
の./$SCRIPT_NAMEを使用してスクリプトを実行することをお勧めします。 ~/bin
の下に置きます。簡単な答えは symlink
システムに含まれる任意のディレクトリ$PATH
へのスクリプトです。
長い答えをウォークスルーの例で以下に説明します(これは私が通常行うことです):
a)スクリプトを作成します。 $HOME/Desktop/myscript.py
:
#!/usr/bin/python
print("Hello Pythonista!")
b)スクリプトファイルの権限を変更して、実行可能にします。
$ chmod +x myscript.py
c)カスタマイズされたディレクトリを$PATH
に追加し(下記のメモの理由を参照)、ユーザーのスクリプトに使用します。
$ export PATH="$PATH:$HOME/bin"
d)次のように、スクリプトへのシンボリックリンクを作成します。
$ ln -s $HOME/Desktop/myscript.py $HOME/bin/hello
hello
(何でもかまいません)は、スクリプトの呼び出しに使用するコマンドの名前です。
注意:
i)$HOME/bin
の代わりに/usr/local/bin
を使用する理由は、ローカルスクリプトを他のユーザー(必要な場合)および他のインストール済みのものから分離するためです。
ii)シンボリックリンクを作成するには、完全な正しいパスを使用する必要があります。
$HOME/bin
GOOD ~/bin
NO GOOD!
以下は完全な例です。
$ pwd
~/Desktop
$ cat > myscript.py << EOF
> #!/usr/bin/python
> print("Hello Pythonista!")
> EOF
$ export PATH="$PATH:$HOME/bin"
$ ln -s $HOME/Desktop/myscript.py $HOME/bin/hello
$ chmod +x myscript.py
$ hello
Hello Pythonista!
スクリプトをPATHのどこかに置くこと(/usr/local/bin
など)は良い解決策ですが、これはforcesシステムのすべてのユーザーがスクリプトを使用/参照することを意味します。
/etc/profile
にエイリアスを追加すると、システムのユーザーがunalias
コマンドを使用してこれを元に戻すことができるようになります。追加する行は次のようになります。
alias MyScript=/path/to/file/MyScript
シェルにecho $PATH
と入力します。これらは、command
と入力したときに検索されるディレクトリなので、それらのいずれかに配置します。
編集:どうやら/usr/bin
は使用せず、/usr/local/bin
を使用してください
/ usr/local/bin /にスクリプトへのシンボリックリンクを作成するだけです。
Sudo ln -s /path/to/your/script.py /usr/local/bin/script
[〜#〜] fhs [〜#〜] によると、/usr/local/bin/
はカスタムスクリプトに適した場所です。コピーしてから755
root:root
にするのが好きです。