使用 ./myscript.py 在 ubuntu 机器上运行 python 脚本

使用 ./myscript.py 在 ubuntu 机器上运行 python 脚本

我正在 ubuntu 机器上运行一个名为 myscript.py 的 python 脚本。我通常使用 python 命令来运行 python 脚本,如下所示。

python main.py

最近,我从 Github 存储库下载了一个 python 脚本(如果需要查看存储库可以在以下位置找到它)https://github.com/gsrivas4/mnist-gan),它要求使用“./”运行脚本,如下所示。

./main.py

第二种运行 python 脚本的方式对我来说是新的。我很困惑我们什么时候可以使用“./”来运行脚本,这种方法是否也可以运行用于其他语言的脚本。通常,我期望二进制文件的名称,例如 python,它将在添加脚本名称之前启动一个进程。该脚本将被输入到进程中。另外,我想了解当我们运行脚本时“./”的含义是什么。我觉得这是一个微不足道的问题,但在网上找不到太多帮助。

我还尝试使我的 python 文件之一可执行,然后运行它。但是,使用 ./ 运行它会给我带来任何 python 库导入命令的错误。

答案1

./只是一个指示当前工作目录的相对路径。执行不在您的文件中的文件时,PATH需要在其前面加上完整路径或相对路径,./这是执行此操作的最简单方法,但如果您使用像这样的完整路径,它也可以工作/path/to/script.py

当您执行 python 脚本时出现错误的原因如下:

./script.py

而不是:

python script.py

是因为顶部没有 hashbang(shebang) 解释器行告诉它在执行脚本时使用哪个解释器。它可能会尝试使用 bash 或您用来执行脚本的任何 shell 来执行它。 (看哪个 shell 解释器运行不带 shebang 的脚本?


要使用 python 正确执行脚本,请将以下内容添加到脚本的第一行:

#!/usr/bin/env python

相关内容