2009-05-21 44 views
2

我正在使用Mac OS X,并且我有一个Python脚本,它将被其他脚本和程序(特别是Apple的launchd)调用。我可以如何为Python脚本定义系统范围的别名?

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

称它为由于脚本的位置可能会改变,我想从实际位置脱钩其他脚本和launchd的配置文件,这样对脚本调用看起来像

script arg1 arg2 

在$ HOME/.bash_profile中定义Bash的别名不起作用,因为launchd不知道别名。

什么是定义“系统范围别名”或类似的东西的最佳方式?

回答

6

我通常做一个符号链接,并把它在/ usr/bin中(假设在/ usr/bin目录的路径的一部分)

(在终端,你可能需要使用须藤LN -s根据权限。

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

如果你把Rory's advice并把#!的/ usr/bin中/蟒蛇在脚本的开始,你还需要使脚本可执行。

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

好主意。也把#在/ usr/bin中/ Python的第一线,以使其可执行,但我仍然获得了 在/ usr/bin中/脚本:!权限被拒绝 如果我叫>脚本 我在做什么错?我需要手动修改它吗? – 2009-05-21 15:46:48

+1

是的,你需要对它做一个chmod。我用一个例子编辑 – 2009-05-21 15:51:16

3

除了做一个符号链接,你可以把“#!/path/to/python“,并将其设置为executabe,然后不必使用”python /Users/big/long/path/script.py“来调用它。