Proper shebang for Python script
我通常在Python脚本中使用以下shebang声明:
最近,我看到了这个"舍邦宣言:
在脚本文档中,注意到使用此表单是"更可移植的"。
这个声明是什么意思?为什么路中间有一个空间?它真的有助于提高可移植性吗?
- 这两个python shebang的区别可能是什么
- 可能是人们为什么要写的副本!/在python脚本的第一行使用usr/bin/env python?
- 可能是我应该放的副本!(shebang)在python脚本中,应该采用什么形式?
更易于移植,因为一般情况下,程序/usr/bin/env可以用来"激活"所需的命令而不需要完整的路径。
否则,您必须指定Python解释器的完整路径,这可能会有所不同。
因此,无论python解释器是在/usr/bin/python中,还是在/usr/local/bin/python中,还是在您的主目录中,使用#!/usr/bin/env python都是有效的。
- 太好了,谢谢。你知道env有用吗?它是运行完整的文件系统搜索,还是依赖于某个路径文件?
- @adammatan env在环境中使用PATH变量,方法是查看环境中每个目录中给定名称的二进制文件(在本例中是python)。如果找到它,它就执行程序。这将程序的发现与执行脱钩,而且由于env在/usr/bin的标准位置的许多系统上都可用,因此它更易于移植。更好的标准化带来更好的可移植性。