在Unix命令行上执行Python2中的脚本

时间:2015-03-24 13:50:45

标签: python linux

是的,我知道我可以做到

python2 cal.py

我要求的是一种在命令行执行它的方法,例如:

calpy

然后是命令。我放入一个路径,当我在命令行中写入cal.py时:

/usr/bin/cal.py: line 5: print: command not found

我不想发布cal.py来运行我的脚本,我希望它发布calpy

如果有帮助的话,我正在运行Arch Linux,谢谢。抱歉我的英文。

3 个答案:

答案 0 :(得分:4)

为了让bash知道通过Python解释器运行您的脚本,您需要在开始时添加适当的shebang。例如:

#!/usr/bin/python

告诉bash以脚本作为第一个参数运行/usr/bin/python。我个人更喜欢

#!/usr/bin/env python

virtualenv兼容。您还需要确保脚本的权限允许执行它:

~$ chmod +x path/to/cal.py

最后,为了调用cal而不是path/to/cal.py,您需要删除.py扩展名并确保包含cal的目录位于命令搜索中路径。我希望通过修改~/bin中的$PATH环境变量,将~/.bashrc添加到搜索路径中:

export PATH=$HOME/bin:$PATH

然后将我自己的可执行文件放在~/bin中。您也可以将(或符号链接)cal复制到系统范围的二进制目录(/bin/usr/bin)之一,但我认为不必要地乱用系统范围的目录是不好的做法

答案 1 :(得分:2)

好的,你需要一些东西来实现你想要的东西。

首先,您必须告诉您的脚本“如何”执行/解释它。你可以写这个文字

#/usr/bin/env python

在文件的初始阶段。

您遇到的问题是系统正在尝试使用bash执行脚本。在bash中没有print命令。

其次,您需要为脚本提供执行权限。当然,如果您想通过命令“calcpy”调用脚本,则必须像这样调用脚本。

答案 2 :(得分:1)

将此(正好是这个)作为脚本的第一个行:

#!/usr/bin/env python