为什么'#!/ usr / bin / env python'比'#!/ usr / bin / python'更正确?

任何人都知道吗? 我从来没有找到答案。


如果你很容易在你PATH上各种有趣的地方安装python(比如典型的Unix shell中的$PATH ,典型的Windows中的%PATH ),使用/usr/bin/env将容纳你的奇思妙想(在Unix中至少)直接进入/usr/bin/python不会。 但是失去对脚本运行的Python版本的控制并不是非合作的讨价还价......如果你看看我的代码,你更有可能看到它开始,例如#!/usr/local/bin/python2.5而不是开放并接受#!/usr/bin/env python - 假设脚本很重要我想确保它与我测试过的特定版本一起运行,而不是一个半随机的;-) 。


从维基百科

Shebangs指定系统可执行文件的绝对路径; 这可能会导致在具有非标准文件系统布局的系统上出现问题

通常,程序/ usr / bin / env可以用来绕过这个限制


它会在您的环境中找到python可执行文件并使用它。 它更便于携带,因为python可能并不总是在/ usr / bin / python中。 env始终位于/ usr / bin中。

链接地址: http://www.djcxy.com/p/46399.html

上一篇: Why is '#!/usr/bin/env python' supposedly more correct than just '#!/usr/bin/python'?

下一篇: Why do people write the #!/usr/bin/env python shebang on the first line of a Python script?