如果您想做某事,几乎可以保证有适合它的 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 命令怎么样?