这两个python shebang有什么区别

我曾经使用shebang

#!/usr/bin/env python 

什么时候使用更好?

 #!/usr/bin/python 

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

#!/usr/bin/python被硬编码为永远运行/usr/bin/python ,而#!/usr/bin/env python将运行python在你当前环境中默认的设置(例如$PATH ,你可以检查哪个python解释器将与which python一起使用)。

第二种方法( #!/usr/bin/env python )是首选,因为它不依赖于特定的安装。 它将以virtualenv设置或系统为例,其中没有/usr/bin/python ,但只有例如/usr/local/bin/python