Pythonスクリプトを直接実行する

Pythonスクリプトを直接実行する

私は時々Pythonスクリプトが直接実行されず、/foo/bar.pyシェルスクリプトで実行されることがわかりました。/usr/bin/python -O /foo/bar.py $@

ネットワーク管理者はそのような例の1つですwicd/usr/bin/wicd-gtk以下を開始するシェルスクリプトですwicd-client.py

$ cat /usr/bin/wicd-gtk

exec /usr/bin/python -O /usr/share/wicd/gtk/wicd-client.py $@

この追加ステップの目的は何ですか?

/usr/share/wicd/gtk/wicd-client.py直接実行すると(実行可能であれば)どのような違いがありますか?

ベストアンサー1

(以下内容は純粋な推測です。)

あなたが持っているのはWicdのパッケージバージョンであり、パッケージマネージャはディストリビューションのPythonパッケージバージョンを使ってそれをテストしました。しかし、/usr/share/wicd/gtk/wicd-client.py次のコードを使用して書かれています。

#!/usr/bin/env python

/usr/bin/env特にPythonプログラミングを行う場合、状況は異なる場合があります。パッケージャでは、Wicd が別の Python バージョンで実行されたり、異なるバージョンのライブラリを使用して発生する問題の可能性を減らすために、これを回避できます。python/usr/bin/python

彼らが作りたい他の準備があるかもしれません。wicd-gtkUbuntu 14.04には次のものがあります/usr/bin/wicd-gtk

#!/bin/sh

# check_firstrun()
if [ ! -d "$HOME/.wicd" ]; then
    mkdir -p "$HOME/.wicd"
fi
# Make sure the user knows WHEREAREMYFILES ;-)
if [ -e "/var/lib/wicd/WHEREAREMYFILES" ] && [ ! -L "$HOME/.wicd/WHEREAREMYFILES" ]; then
    ln -s "/var/lib/wicd/WHEREAREMYFILES" "$HOME/.wicd/WHEREAREMYFILES"
fi

exec /usr/bin/python -O /usr/share/wicd/gtk/wicd-client.py $@

おすすめ記事