在 Linux 命令行中运行 Python 脚本

如果您想做某事,几乎可以保证有适合它的 Python 脚本。 那么,当你有一个 Python 脚本时,你如何运行它?

最简单的方法是使用 python 或者 python3 命令如下:

python <file-name>.py

如果您看到 python 命令未找到错误,请尝试 python3:

pythone3 <file-name>.py

?一些发行版使用 python2 作为 python 并有一个明确的命令 python3 对于 python3。 所以如果你想保证Python 3,使用 python3.

方法一:使用python运行

在任何 Linux 发行版上运行 Python 脚本的最简单方法是调用 python 命令并为其提供 Python 脚本的名称。

语法如下:

python3 <script-name>.py

这将确保如果文件的内容有效,它将被执行而不会出现任何问题。

方法 2:使 Python 脚本可执行

你可能遇到过执行 bash 脚本只需在终端中输入它们的相对/绝对路径。 即你从来不需要做 bash <script-name>.sh 就像你通过键入 Python 脚本一样 python <script-name>.py

为了实现这一点,首先应该做几件事。

如果您可能已经注意到, bash 您可以通过简单地输入它们的相对/绝对路径来执行的脚本,它们是“可执行”文件。

要使 Python 脚本可执行,请在终端中运行以下命令:

chmod +x <script-name>.py

应该是这样。 正确的? 我有一个文件 hello.py,让我们尝试运行它。

$ cat hello.py
print("Hello Linux Handbook!")

$ chmod +x hello.py

$ ./hello.py
./hello.py: 1: Syntax error: word unexpected (expecting ")")

呃哦…什么? 语法错误? 但它是一个有效的 Python 程序/脚本。

我们得到这个错误的原因是因为通过制作 hello.py 一个可执行文件,我们所做的只是告诉 shell “你可以执行它”,而不是在执行它时使用什么解释器/程序。

我的外壳(bash) 认为这是一个 bash 脚本。 因此,我们得到了这个错误。

克服这个问题的解决方案非常简单。 将以下行添加到 第一行 你的 Python 脚本。

#!/usr/bin/env python

#! 语法主要用于脚本(需要解释器的地方)。 现在 /usr/bin/env 部分意味着我们正在打电话 env 找到 python 命令来自 $PATH 并为我们执行。

这实质上是为我们启动了 Python,而不是用户每次都需要手动调用它。 而且,如果您不将这些事情自动化,您还要编写脚本吗?

使用的另一个原因 env 在 shebang 中是为了使其便携。 一些系统将 Python 可执行解释器存储为 /usr/local/bin/python,而有些人可能有 /usr/bin/python.

现在,让我们尝试执行 hello.py 再次,但对其进行了必要的更改。

$ sed -i '1 i#!/usr/bin/env pythonn' hello.py

$ cat hello.py
#!/usr/bin/env python

print("Hello Linux Handbook!")

$ ./hello.py
Hello Linux Handbook!

噢!嗨! 它现在运行完美。

既然您知道如何从终端运行 Python 程序,那么学习从 Python 脚本使用 Linux 命令怎么样?