我正在 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