3

这两条线有什么区别?

#!/usr/bin/python

#!/usr/bin/env python

4

1 回答 1

1

这与 Python 本身无关,更多的是与shebang 线的工作方式有关。

在许多类 UNIX 系统中,您需要在 shebang 行上提供绝对路径名,例如/usr/bin/python.

但是,当您将该脚本移动到目录中包含 Pyyhon的另一/usr/local/bin台机器时会发生什么?不会的,就是这样。或者,即使您只是想在$HOME/python/bin测试中使用不同的 Python 解释器,您也需要更改 shebang 行。

env是一种解决方法。由于它通常总是in /usr/bin,因此您可以安全地将其作为绝对路径包含在 shebang 行中。

在这种情况下,env命令本身会搜索路径python并运行该可执行文件。

该命令实际上可以做env不止这些,它可以打印环境env(在一个固定的位置。env xyzzy=plugh myprog

于 2013-04-29T00:57:20.090 回答