python如何在不指定解释器的情况下运行python

Vit*_*you 0 python interpreter permission-denied

当你运行python脚本时,你必须这样做

python3 filename
Run Code Online (Sandbox Code Playgroud)

有没有你可以写在python文件中的东西,以便你在运行它之前不必说python3.我尝试了#!/ line,但是当我这样做时:

./filename
Run Code Online (Sandbox Code Playgroud)

它说许可被否定了.在强制运行程序时是否指定解释器名称?

Mic*_*nas 6

在python文件的顶部,您将要添加Python3二进制文件的路径.这通常被称为"hashbang"或"shebang".它告诉你的shell 如何解释或运行你的文件(没有它,如果你尝试过./<python-file>,它会尝试将其解释为bash.

#!/path/to/python3
Run Code Online (Sandbox Code Playgroud)

在我的电脑上,它是

#!/usr/bin/python3
Run Code Online (Sandbox Code Playgroud)

要确定python3二进制(或链接)所在的路径,请运行

$ which python3
Run Code Online (Sandbox Code Playgroud)

或者,最好使用env它,因为它将确保使用的解释器是您环境中的第一个解释器$PATH.

#!/usr/bin/env python3
Run Code Online (Sandbox Code Playgroud)

注意,你需要运行

$ chmod a+x <python-file>
Run Code Online (Sandbox Code Playgroud)

更改模式以使其可执行.它a告诉它使所有人(用户,组和其他人)可执行,所以如果你不想这样,你可以把它留出来(如,chmod +x <python-file>).

要不必./在可执行文件之前运行,您需要设置PATHas

export PATH=$PATH:.
Run Code Online (Sandbox Code Playgroud)

在您.bashrc*rc您的shell的类似文件中.(export使变量可用于子流程.)然后您将要运行

$ source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)