#!/usr/bin/env python
我把它放在脚本的顶部。我已经看到应该使脚本可以从命令行运行,而无需python programname.py
. 除非我有误解programname.py
,只要我在脚本顶部有上述行,我就应该可以使用。这个对吗?
它对我不起作用,我只是收到一个错误,表明我必须python
在“通话”开始时使用。
你几乎可以在没有 shebang ( #!
) 的情况下普遍运行
python myscript.py
或几乎等效(它将当前目录放在您的路径上并执行名为 的模块myscript
)(最好这样做!):
python -m myscript
从命令行,只要您安装了 Python 并且在路径环境变量上(即设置为使用 运行python
,如果已安装,通常就是这种情况)。
#!
) 是 Unix 的东西。当您使用它时,shebang 通常用于在 Unix 平台(通常是 Apple 或 Linux)上运行。Windows 通常需要 cygwin 才能使用 shebang。
您通常可以默认使用系统路径上可用的任何 python:
#!/usr/bin/env python
假设您使用的是 Unix,您可能会尝试其他位置进行 python 设置,例如:
#!/usr/bin/python
您可以使用 unixwhich
命令查看当前正在使用的 python,因此,如果您想查看 python 的来源,请使用以下命令:
which python
或在 Windows 上(cygwin 可能可以运行 shebang):
where python
在 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