#!/usr/bin/env python
我将那段代码放在脚本的开头。我发现这样可以使得脚本无需使用python programname.py
命令也能够在命令行中运行。除非我理解错了,只要在脚本开头加上上述代码,我应该就能够使用programname.py
命令运行程序。这是正确的吗?
对于我来说它没有起作用,我只是收到一个错误提示,指出我必须在“调用”之前使用python
。
您可以使用以下方法在几乎所有情况下运行Python脚本,而无需shebang (#!
):
python myscript.py
或者近似等效地(它将当前目录添加到您的路径中并执行名为myscript
的模块)(最好这样做!)
python -m myscript
只要您在命令行上安装了Python并将其添加到环境变量的路径中(即设置为使用python
运行,如果已安装,则通常是这种情况),就可以运行此命令。
#!
) 是Unix系统的东西。根据您正在使用的shebang,它通常用于在Unix平台上运行(通常是苹果或Linux)。 Windows通常需要cygwin才能使用shebang。
您可以使用以下命令来默认使用系统路径中可用的任何Python:
#!/usr/bin/env python
假设你正在使用Unix系统,你可以尝试其他位置来设置Python,比如:
#!/usr/bin/python
您可以使用Unix的which
命令查看您当前正在使用的Python版本,因此,如果您想查看Python的来源,请使用此命令:
which python
或者在Windows上(cygwin可能可以运行shebang):
where python
在Linux/Unix系统中,你需要执行权限才能以这种方式运行该文件。使用 chmod 命令。
Translated:在Linux/Unix系统中,你需要执行权限才能以这种方式运行该文件。使用 chmod 命令。
chmod +x myscript.py
(chmod也适用于Windows中的Cygwin)
如果您没有以root身份运行,您可能需要使用sudo
,那样就会是:
sudo chmod +x myscript.py
然后尝试在相同的目录下运行以下命令:
./myscript.py
使文件可执行
sudo chmod +x /path/to/file.py
然后从与file.py相同的目录中:
./file.py
UUID=asdfasfasdfa /mnt/fee auto rw 0 1
至
UUID=asdfasfasdfa /mnt/fee auto defaults 0 1
exec
包含在defaults = rw, suid, dev, exec, auto, nouser, and async.
中。在NTFS或其他文件系统上,您无法更改分区��文件或文件夹的权限,但这不是OP的问题,因为文件的权限已经正确设置。