В начале всех моих исполняемых скриптов 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). Может быть, для предотвращения ручной настройки требуется какая-то утилита распространения?