繁体   English   中英

在没有python命令的情况下在终端中运行python脚本

[英]run a python script in terminal without the python command

我有一个python脚本,我们将它命名为script1.py。 我可以这样在终端上运行它:

python /path/script1.py
...

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

arbitraryname
...

我该怎么做 ?

您在脚本开头使用shebang行

#!/usr/bin/env python

使文件可执行:

chmod +x arbitraryname

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

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

有三个部分:

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

添加一个shebang

您需要在脚本的顶部添加一个shebang,以便shell在解析脚本时知道要使用哪个解释器。 通常是:

#!path/to/interpretter

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

which python

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

#!/usr/bin/python

运行权限

您必须使用运行权限标记脚本,以便在尝试将其用作命令时,shell知道您希望实际执行它。 为此,您可以运行此命令:

chmod +x myscript.py

将脚本添加到路径中

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

echo $PATH

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

which <commandname>

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

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

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

script1.py下行添加到开头的script1.py

#!/usr/bin/env python

然后使脚本可执行:

$ chmod +x script1.py

如果脚本位于PATH变量中显示的目录中,则只需键入即可

$ script1.py

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

$ ./script1.py

你需要使用hashbang 将它添加到python脚本的第一行。

#! <full path of python interpreter>

然后更改文件权限,并添加执行权限。

chmod +x <filename>

最后用它来执行它

./<filename>

如果它在当前目录中,

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM