有人都知道吗?我从来没有找到答案。
答案 0 :(得分:66)
如果您倾向于在PATH上的各个有趣位置安装python(如典型Unix shell中$PATH
,典型Windows上%PATH
),使用/usr/bin/env
将容纳你的心血来潮(好吧,至少在类Unix环境中),而直接到/usr/bin/python
则不会。但是失去对你的脚本运行的Python版本的控制并不是没有合法的讨价还价...如果你看看我的代码,你更有可能看到它开始,例如,#!/usr/local/bin/python2.5
而不是开放和接受#!/usr/bin/env python
- 假设脚本很重要,我喜欢确保它使用我测试过的特定版本运行,而不是半随机版本; - )。
答案 1 :(得分:25)
Shebangs指定系统可执行文件的绝对路径;这可能会导致 具有非标准文件系统布局的系统上的问题
通常,程序/ usr / bin / env可用于规避这一点 限制
答案 2 :(得分:10)
它在您的环境中找到python可执行文件并使用它。它更具可移植性,因为python可能并不总是在/ usr / bin / python中。 env始终位于/ usr / bin。
答案 3 :(得分:5)
它还会在/ usr / local / bin,〜/ bin,/ opt / bin,......或者它可能隐藏的任何地方找到'python'。
答案 4 :(得分:3)