В начале всех исполняемых скриптов Python я помещал строку shebang:
#!/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")
Я не хочу менять строку shebang на каждый исполняемый файл, если это возможно; однако у меня нет административного доступа к машине, чтобы изменить результат env python
, и я не хочу форсировать определенную версию, например:
#!/usr/bin/env python2.4
Я бы хотел этого избежать, потому что система может иметь более новую версию, чем Python 2.4, или может иметь Python 2.5, но не Python 2.4.
Какое элегантное решение?
[Edit:] Я не был достаточно конкретным в постановке вопроса - я бы хотел, чтобы пользователи выполняли скрипты без ручной настройки (например, изменение пути или символическая привязка в ~/bin
и обеспечение вашего PATH ~/bin
до пути Python 2.2). Может быть, какая-то утилита распределения требуется для предотвращения ручных настроек?