2009-05-21 5 views
2

私はMac OS Xで作業していますが、私は他のスクリプトやプログラム(特にAppleのlaunchd)によって呼び出されるPythonスクリプトを持っています。スクリプトの場所が変更される場合がありますので、私は、スクリプトの呼び出しがPythonスクリプトのシステムワイドエイリアスを定義するにはどうすればよいですか?

script arg1 arg2 
のように見えるように、私は、実際の場所から他のスクリプトやlaunchdの設定ファイルを分離したい、

python /Users/xyz/long/absolute/path/to/script.py arg1 arg2 

でそれを呼び出すことができます

$ HOME/.bash_profileでBashのエイリアスを定義すると、launchdはエイリアスについて認識しないため、動作しません。

"システム全体のエイリアス"または同等のものを定義する最も良い方法は何ですか?

答えて

6

私は通常のシンボリックリンクを作成し、端末では/ usr/binに(仮定は/ usr/binがPATHの一部である)

(にそれを置く。あなたはにsudoのln -sを使用する必要があります権限に応じて、あなたがRory's adviceを取ると、スクリプトの先頭に#!/ usr/bin/pythonを置く場合。

ln -s /Users/xyz/long/absolute/path/to/script.py /usr/bin/script.py 

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

chmod a+x /Users/xyz/long/absolute/path/to/script.py 
+0

!また、実行可能な、それを作るために最初の行に#/ usr/bin/pythonを置くしかし、私はまだ は/ usr/binに/スクリプトを取得します:私は>スクリプト 私が間違って何をやって呼び出すと許可が を否定しましたか? –

+1

はい、chmodを実行する必要があります。例を編集しました –

+0

これは "ローカル"な変更(コアOSの一部ではない)なので、シンボリックリンクを –

3

シンボリックリンクと同様に、 "#!/path/to/python "をスクリプトの先頭に置いて実行ファイルにしてください。" python /Users/big/long/path/script.py "で呼び出す必要はありません。

+3

+1:すべてのscの前に必ず '#!/ usr/bin/env python'を置いてください。これは'/usr/bin/ript。 –

関連する問題