不使用python命令在终端中运行python脚本

2024-04-26 17:33:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python脚本,命名为script1.py。我可以用这种方式在终端运行它:

python /path/script1.py
...

但我想像命令行程序一样运行:

arbitraryname
...

我该怎么做?


Tags: path命令行py程序脚本终端方式命名
3条回答

有三个部分:

  1. 在脚本的顶部添加一个“shebang”,告诉您如何执行脚本
  2. 授予脚本“运行”权限。
  3. 在你的路径中创建脚本,这样你就可以从任何地方运行它。

添加shebang

您需要在脚本的顶部添加一个shebang,这样shell就知道在解析脚本时要使用哪个解释器。一般来说:

#!path/to/interpretter

要在计算机上找到python解释程序的路径,可以运行以下命令:

which python

这将搜索路径以找到python可执行文件的位置。它应该有一个绝对的路径,然后你可以用它来形成你的shebang。确保shebang位于python脚本的顶部:

#!/usr/bin/python

运行权限

您必须将脚本标记为具有运行权限,这样当您试图将其用作命令时,shell就知道您想要实际执行它。要执行此操作,可以运行以下命令:

chmod +x myscript.py

将脚本添加到您的路径

PATH环境变量是一个有序的目录列表,您的shell在查找试图运行的命令时将搜索这些目录。因此,如果您希望python脚本是一个可以从任何地方运行的命令,那么它必须在您的路径中。可以看到运行命令的路径的内容:

echo $PATH

这将打印出一长行文本,其中每个目录用分号分隔。每当您想知道从路径运行的可执行文件的实际位置时,可以通过运行以下命令找到它:

which <commandname>

现在有两个选项:将脚本添加到路径中已有的目录,或将新目录添加到路径中。我通常在用户主目录中创建一个目录,然后将其添加到路径中。要向路径中添加内容,可以运行以下命令:

export PATH=/my/directory/with/pythonscript:$PATH

现在您应该可以在任何地方将python脚本作为命令运行。但是!如果关闭shell窗口并打开一个新窗口,新窗口将不会记住您刚才对路径所做的更改。因此,如果希望保存此更改,则需要将该命令添加到.bashrc或.bash_配置文件的底部

在脚本开头使用shebang line

#!/usr/bin/env python

使文件可执行:

chmod +x arbitraryname

并将其放在路径上的目录中(可以是符号链接):

cd ~/bin/
ln -s ~/some/path/to/myscript/arbitraryname

将以下行添加到开头script1.py

#!/usr/bin/env python

然后使脚本可执行:

$ chmod +x script1.py

如果脚本位于出现在PATH变量中的目录中,则只需键入

$ script1.py

否则,需要提供完整路径(绝对路径或相对路径)。这包括当前工作目录,它应该而不是在您的PATH中。

$ ./script1.py

相关问题 更多 >