如何为Python脚本定义全局别名?
我在使用Mac OS X,正在写一个Python脚本,这个脚本会被其他脚本和程序调用,特别是苹果的launchd。为了调用这个脚本,我可以这样做:
python /Users/xyz/long/absolute/path/to/script.py arg1 arg2
因为脚本的位置可能会改变,所以我想让其他脚本和launchd的配置文件不依赖于脚本的实际位置,这样调用脚本的时候看起来就像是:
script arg1 arg2
在$HOME/.bash_profile中定义一个Bash的别名并不能奏效,因为launchd并不知道这个别名。
那么,定义一个“系统范围的别名”或者类似的东西,最好的方法是什么呢?
2 个回答
3
除了创建一个符号链接,你还可以在脚本的开头加上“#! /path/to/python”,然后把这个脚本设置为可执行的。这样你就不需要用“python /Users/big/long/path/script.py”来运行它了。
6
我通常会创建一个符号链接,然后把它放在 /usr/bin 目录下(假设 /usr/bin 是你系统路径的一部分)。
(在终端里操作。如果权限不够,你可能需要使用 sudo ln -s 命令。)
ln -s /Users/xyz/long/absolute/path/to/script.py /usr/bin/script.py
如果你听从了 Rory 的建议,在脚本开头加上 #!/usr/bin/python,那么你还需要让这个脚本可以执行。
chmod a+x /Users/xyz/long/absolute/path/to/script.py