В начале всех моих сценариев исполняемого Python Я поставили shebang строки:развертывание Python и/USR/бен/окр портативность
#!/usr/bin/env python
Я бег этих сценариев в системе, где env python
дает Python 2.2 Окружающая среда. Мои сценарии быстро выходят из строя, потому что у меня есть ручная проверка для совместимой версии с Python:
if sys.version_info < (2, 4):
raise ImportError("Cannot run with Python version < 2.4")
Я не хочу, чтобы изменить притон линию на каждом исполняемом файл, если это возможно; Однако, я не административный доступ к машине, чтобы изменить результат env python
, и я не хочу, чтобы заставить конкретную версию, как:
#!/usr/bin/env python2.4
Я хотел бы избежать этого, потому что система может имеют более новую версию, чем Python 2.4, или могут иметь Python 2.5, но не Python 2.4.
Какое изящное решение?
[Edit:] Я не был достаточно конкретной постановкой вопроса - я хотел бы, чтобы пользователи могли выполнять сценарии без ручной настройки (например, путь изменения или символических ссылок в ~/bin
и обеспечении вашей PATH имеют ~/bin
перед Python 2.2). Может быть, какая-то утилита распределения необходима для предотвращения ручных настроек?
Плюс, предположим, что он использует os.exec с найденным исполняемым файлом и списком sys.argv. – tzot 2008-09-25 09:39:55