Какая разница между этими двумя пибонами

Раньше я использовал shebang

#!/usr/bin/env python

Когда лучше использовать

#!/usr/bin/python

Какая разница между ними?

Ответ 1

#!/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.