Даже в Unix с Shebang (#!
) вы не заставляете какую версию запускать. Если программа не выполняется напрямую (./my.py
) и вместо этого выполняется как python2 my.py
, тогда все еще будет использоваться Python 2.
Я бы предложил самый безопасный способ - проверить версию в начале вашего скрипта и вывести сообщение об ошибке, если оно не подходит, например:
if sys.version_info[:3] < (3,2,0):
print('requires Python >= 3.2.0')
sys.exit(1)