В зависимости от системы, python
== python2
или python
== python3
.
Исполняемые скрипты Python, начинающиеся с:
#!/usr/bin/env python
#!/usr/bin/env python2
#!/usr/bin/env python3...
Для python py3k это предусмотрено в документации, я должен / могу использовать его с номером версии , поэтому я делаю это:
#!/usr/bin/env python3
Но я нашел проблему со скриптами py2k.
В то время как в py2k документации написано использовать: #! /usr/bin/env python
,
в некоторых * nix-es python py3k по умолчанию, поэтому python == python3. (Например, пакет Python ArchLinux , здесь файлы пакета Python ).
Как упаковать (настроить, сделать) и / или подготовить сценарии Python для распространения, чтобы справиться с этим?
Я спрашиваю о создании пакетов программного обеспечения, которые могут легко запускаться пользователями (без изменения их среды)
Могу ли я сделать то же трюк для питона py2k сценариев , как для питона py3k скриптов и установить его как: #!/usr/bin/env python2
? Могу ли я быть уверен, что каждый дистрибутив python py2k содержит python2
файл, так что #!/usr/bin/env python2
будет работать?
Если да, то почему это не предлагается в качестве стандарта, например, в документации по python py2k ?
python2
. Интересно, почему это не стандартно использовать, когда есть py2k и py3k и по умолчанию python
может отличаться. Как насчет вашего совета по удалению - это не соответствует этому примеру, потому что я спрашиваю об упаковке. Я хотел бы сделать пакет, который может работать в разных конфигурациях / системах. Нет способа изменить среду. Что касается проверки - это не относится к Шебангу - насколько я знаю.
#!...python2
в своих программах, а если вы используете Python 3.x, используйте #!...python3
. Не полагайтесь на правильную ссылку в операционной системе, если вы знаете, что она будет работать только для определенного выпуска. Я работаю с системами, в которых все еще установлен Python 1.5.2 /usr/bin/python
- я либо пишу код для обработки старых версий Python, либо использую его python2
.
python2
исполняемого файла в моей системе (Debian squeeze). python
является символической ссылкой на python2.6
, и python3
является символической ссылкой на python3.1
, но нет python2
.
python2
для запуска (если он установлен), и всегда вы можете проверить версию сpython -V
. если вы хотите, чтобыpython
это было 2 или 3, вы должныrm /usr/bin/python
и затем создать символическую ссылку, которая указывает на вашу версию Python, напримерln -s /usr/bin/python2.5 /usr/bin/python
.