Иногда я вижу #!/usr/bin/python2
и #!/usr/bin/python3
, а не просто #!/usr/bin/python
. Я получаю призыв к этому подходу, вы можете явно сказать, нужен ли вам Python 2 или 3, не выполняя некоторую странную проверку версий.Является ли "python2"/"python3" безопасным для скриптинга shebang?
Являются ли эти python2
и python3
стандартными? Будут ли они работать везде? Или это рискованно?
Я только что подтвердил, что у меня есть python2
и python3
, но я нахожусь на Cygwin, поэтому я бы не подумал, что это означает, что это обязательно одно и то же для многих других.
Примечание: Для тех, кто рассматривает #!/usr/bin/python
с или без номера, более важная вещь, чтобы помнить о том, что python
даже не всегда в /usr/bin
(FreeBSD и OSX, например), так что используйте #!/usr/bin/env python
если вы хотите большую мобильность.
Тогда просто молитесь, чтобы env
находится в /usr/bin
.
у вас будет только это, если у вас установлены МНОЖЕСТВЕННЫЕ версии python и нужно явно вызвать тот или иной. –
Возможно, стоит сказать, что вы должны использовать 'env' в своем shebang, если хотите больше переносимости относительно исполняемых целей. Не каждая установка python по умолчанию находится в '/ usr' (я могу сказать, что этого не происходит в FreeBSD и Mac OSX). – farsil
@farsil спасибо, я могу добавить это. У меня есть один вопрос, хотя об использовании 'env' в shebangs, является' #!/Usr/bin/env ... 'правильным или' env' установлен в разных местах также ? –