Как контролировать, какая версия Python запускается при двойном щелчке файла? - PullRequest
8 голосов
/ 24 января 2012

Есть ли способ контролировать, какая версия python запускается при двойном щелчке по файлу py?Из командной строки и в таких средах, как Eclipse, я могу контролировать, какая версия запускается.Но из двойного щелчка я не уверен.

У меня установлены 2.6 и 2.7.2.6 для некоторых приложений, и я хочу сделать 2.7 по умолчанию.Я добавил «C: \ Python27» в переменную окружения PATH, и это хорошо работает в командной строке.C: \ path \ to \ some \ file> python someFile.py запустит файл в 2.7.Но если я дважды щелкну тот же файл в проводнике, он запускается 2.6.Как заставить его работать 2.7?

Ответы [ 4 ]

7 голосов
/ 24 января 2012

В Windows необходимо изменить ассоциации файлов , например, с помощью правого клика → Open with ...Choose default program или в настройках папки панели управления.Вы можете выбрать между несколькими установками python, перейдя к нужному python.exe через кнопку «Обзор»:

enter image description here

В качестве альтернативы, вы можете изменить ассоциацию в командной оболочке, набрав

ftype Python.File="C:\Python27\python.exe" "%1" %*

Обратите внимание, что для этого требуются права администратора.Если на вашем компьютере включен контроль учетных записей, щелкните правой кнопкой мыши cmd в меню «Пуск» и выберите Run as administrator.

На рабочих столах, совместимых с freedesktop.org, вы можете настроить ассоциацию с xdg-mime.

В дистрибутивах на основе debian вы можете изменить питон по умолчанию с помощью update-alternatives.Во всех системах вы также можете использовать символическую ссылку на питоне в вашем пути к правильной реализации, например:

$ sudo ln -sf python2.7 /usr/bin/python

Если файл помечен как исполняемый, его также можно запустить непосредственно из командной строки или графического интерфейса, еслион начинается с #! и имени переводчика:

#!/usr/bin/env python

Чтобы выбрать конкретную версию Python только для вашей программы, вы можете запустить программу на Python одной из следующих строк:

#!/usr/bin/env python2.7
#!/usr/bin/python2.7
4 голосов
/ 25 января 2012

ОК Я нашел Python Launcher , который делает именно то, что я ищу. Скачать можно здесь . После установки этой опции у меня была опция «Python Launcher для Windows (GUI)» при изменении ассоциации файлов через меню правой кнопки мыши.

Добавление линии Шебанга

#!/usr/bin/python2.7

принудительно запускает скрипт в 2.7.

Это прекрасно работает, так как я могу контролировать, какая версия Python работает, и пользователям никогда не нужно знать. Нет необходимости в файлах bat, перетаскивании на ярлыки и т. Д. Красиво и чисто, а главное, нет места для ошибки пользователя.

3 голосов
/ 24 января 2012

Вы можете использовать ASSOC и FTYPE

assoc .py=pyfile
ftype pyfile=c:\Python27\python.exe %1
...