这两个python shebangs有什么区别

What's the difference between these two python shebangs

我以前用过shebang

1
#!/usr/bin/env python

什么时候用比较好

1
#!/usr/bin/python

它们之间的确切区别是什么?


#!/usr/bin/python被硬编码为始终运行/usr/bin/python,而#!/usr/bin/env python将运行当前环境中默认的python(它将考虑例如$PATH,您可以检查哪些python解释器将与which python一起使用)。

第二种方式(#!/usr/bin/env python)是首选的,因为它不依赖于特定的安装。例如,它将与没有/usr/bin/python但仅限于/usr/local/bin/pythonvirtualenv设置或系统一起工作。