Как мне установить версию Python по умолчанию в Windows

Я установил Python 2.6 и Python 3 на Windows 7 и установил переменную среды: path = d:\python2.6,

Когда я бегу python в cmd он отображает версию python 2.6, что правильно!

Но когда я написал скрипт в bat-файле и запустил его, показанная версия Python была 3.1.

Что здесь не так?

Код скрипта в файле bat:

import sys
print (sys.version)

19 ответов

Это если у вас установлены обе версии.

Перейдите на этот компьютер -> щелкните правой кнопкой мыши -> выберите Свойства -> Дополнительные параметры системы.

Вы увидите свойства системы. Отсюда перейдите на вкладку "Дополнительно" -> Нажмите "Переменные среды".

Вы увидите верхнюю половину для пользовательских переменных и нижнюю половину для системных переменных.

Проверьте системные переменные и дважды щелкните по пути (для редактирования пути).

Проверьте путь Python(который вы хотите запустить, т.е. Python 2.x или 3.x) и переместите его в начало списка Path.

Перезапустите командную строку, и теперь, когда вы проверяете версию Python, она должна правильно отображать требуемую версию.

Последний Python, который вы устанавливаете, который регистрирует себя в среде, является по умолчанию (я не могу вспомнить точную формулировку в установщике, но это первый вариант). Существует ряд настроек, поэтому, чтобы убедиться, что все они зарегистрированы последовательно, просто переустановите версию, которую вы хотите использовать по умолчанию.

Если вы хотите установить другую версию, но не хотите использовать ее по умолчанию, просто отключите опцию регистрации во время установки.

Изменить (19 мая 2012 г.)

Начиная с Python 3.3, установщик Python устанавливает Python Launcher для Windows. Эта программа (py.exe) связан с расширениями файлов Python и ищет комментарий "shebang", чтобы указать версию Python для запуска. Это позволяет сосуществовать многим версиям Python и позволяет сценариям Python явно указывать, какую версию использовать, если это необходимо. Если он не указан, по умолчанию используется последняя версия Python 2.X для текущей архитектуры (x86 или x64). Это значение по умолчанию можно настроить через py.ini файл или PY_PYTHON переменная окружения. Смотрите документы для более подробной информации.

Просто убедитесь, что Python 3.3 является последним установленным Python, который зарегистрировался в Windows. Если позже будут установлены другие версии Python, не регистрируйте их в среде, поэтому программа запуска останется по умолчанию.

Вот как проверить, правильно ли зарегистрирована программа запуска из консоли:

C:\>assoc .py
.py=Python.File

C:\>ftype Python.File
Python.File="C:\Windows\py.exe" "%1" %*

Выше, .py файлы связаны с Python.File тип. Командная строка для Python.File Python Launcher, который устанавливается в каталог Windows, поскольку он всегда находится в PATH.

Чтобы ассоциация работала, запустите сценарии из командной строки с script.py а не "python script.py", иначе python будет работать вместо py, py.exe также может быть запущен с переключателями для принудительной версии Python:

py -3 script.py    # force latest Python 3.X version to be used.

Дополнительно добавить .py;.pyw;.pyc;.pyo к PATHEXT переменная окружения, а затем командная строка может быть просто script без продления

Команда 'py' скажет вам, какая у вас версия. Если вы в настоящее время используете 3.x и вам нужно переключиться на 2.x, вам нужно будет использовать переключатель '-2'

py -2

Если вам нужно переключиться с python 2.x на python 3.x, вам придется использовать ключ -3

py -3

Если вы хотите использовать Python 3.x в качестве версии по умолчанию, вам нужно создать переменную окружения 'PY_PYTHON' и установить для нее значение 3.

Если вы знаете о Environment variables и системная переменная с именем path, учтите, что по умолчанию будет использоваться любая версия любого бинарного файла, которая появится раньше.

Посмотрите на изображение ниже, у меня есть 3 разных версии python, но python 3.8будет использоваться по умолчанию, так как он появился раньше, чем два других. (В случае упомянутого изображения раньше - значит выше!)

Если вы пользователь Windows и у вас установлена ​​версия Python 3.3 или выше, на вашем компьютере должен быть установлен Python Launcher для Windows, который рекомендуется использовать для запуска всех скриптов Python (независимо от версии Python, которую требует скрипт.).

Как пользователь

  • Всегда печатайте py вместо того python при запуске скрипта из командной строки.

  • Настройте ассоциацию программы "Открыть с помощью..." по умолчанию в проводнике с C:\Windows\py.exe

  • Установите ассоциацию расширения файла командной строки для использования Python Launcher для Windows (это сделает ввод py необязательный):

    ftype Python.File="C:\windows\py.exe" "%L" %*

    ftype Python.NoConFile="C:\Windows\pyw.exe" "%L" %*

  • Установите предпочтительную версию по умолчанию, установив PY_PYTHON переменная среды (например, PY_PYTHON=3.7). Вы можете увидеть, какая версия Python используется по умолчанию, набравpy. Вы также можете установитьPY_PYTHON3 или PY_PYTHON2 чтобы указать версии Python 3 и Python 2 по умолчанию (если у вас их несколько).

  • Если вам нужно запустить определенную версию python, вы можете использовать py -M.m (где M это основная версия и mэто второстепенная версия). Например,py -3 запустит любую установленную версию python 3.

  • Перечислите установленные версии python с помощью py -0.

Как сценарист

  • Включите строку shebang в верхней части вашего скрипта, которая указывает номер основной требуемой версии python. Если сценарий несовместим с какой-либо другой дополнительной версией, укажите также номер дополнительной версии. Например:

    #!/usr/bin/env python3

  • Вы также можете использовать строку shebang для обозначения виртуальной среды (см. PEP 486 ниже).


Смотрите также

Смотрите здесь для оригинального сообщения

;
; This is an example of how a Python Launcher .ini file is structured.
; If you want to use it, copy it to py.ini and make your changes there,
; after removing this header comment.
; This file will be removed on launcher uninstallation and overwritten
; when the launcher is installed or upgraded, so don't edit this file
; as your changes will be lost.
;
[defaults]
; Uncomment out the following line to have Python 3 be the default.
;python=3

[commands]
; Put in any customised commands you want here, in the format
; that's shown in the example line. You only need quotes around the
; executable if the path has spaces in it.
;
; You can then use e.g. #!myprog as your shebang line in scripts, and
; the launcher would invoke e.g.
;
; "c:\Program Files\MyCustom.exe" -a -b -c myscript.py
;
;myprog="c:\Program Files\MyCustom.exe" -a -b -c

Таким образом, в моей системе я сделал py.ini файл под c:\windows\ где py.exe существует со следующим содержимым:

[defaults]
python=3

Теперь, когда вы дважды щелкните файл.py, он будет запущен с новой версией по умолчанию. Теперь я использую только Шебанг #! python2 на моих старых сценариях.

Это работа для меня.

Если вы хотите использовать python 3.6, вы должны переместить python3.6 в начало списка.

То же самое относится и к python2.7. Если вы хотите использовать 2.7 по умолчанию, убедитесь, что вы перемещаете python2.7 в самый верх списка.

шаг 1

шаг 2

шаг 3

затем закройте любую командную строку cmd и снова откройте, она должна работать как положено.

Python - версия

>>> Python 3.6
  1. Изменить ключ реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\python.exe\default
  2. Установить программу по умолчанию для открытия .py файлы в python.exe

С версией Python2.7,3.7,3.9и3.11установлен на моей ОС Windows 11, вышеуказанные решения не работают для меня.

Командаpy --helpдайте несколько советов по установке версии python, например:

использование:
[...]
Если точная версия не указана, использование последней версии может быть переопределено любым из следующих (в порядке приоритета):
Из [значений по умолчанию] в py.ini в вашем %LOCALAPPDATA%\py. ини

Самый простой способ установить конкретную версию Python по умолчанию — это создать/отредактировать файл под%LOCALAPPDATA%\py.ini.

  • Содержаниеpy.ini
      [defaults]
python=3.7
  • Вывод консоли с правами администратора и пользователя :
      C:\Users\bob>py --version
Python 3.7.9

Это сработало для меня:

Идти к

Control Panel\System and Security\System

Выбрать

Advanced system settings from the left panel
from Advanced tab click on Environment Variables

В разделе Системные переменные найдите (создайте, если не существует)

PYTHONPATH

и установить

C:\Python27\;C:\Python27\Scripts;

или желаемая версия

Вам нужно перезапустить CMD.

Если это все еще не работает, вы можете оставить в переменной PATH только желаемую версию.

Если вы работаете в Windows, используйте команду ASSOC, чтобы изменить версию Python по умолчанию для программ Python.

assoc .py=<каталог Python 3.1>

Ничто из вышеперечисленного не сработало, вот что у меня сработало:

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

Эта команда должна быть запущена в командной строке, запущенной от имени администратора

Предупреждение: даже если путь в этой команде установлен на python35, если у вас установлен python36, по умолчанию будет установлено значение python36. Чтобы предотвратить это, вы можете временно изменить имя папки с Python36 в xxPython36, выполните команду и затем удалите изменения в папку Python 36.

Проверьте, какая система в настоящее время использует:

python --version

Добавьте расположение основной папки (например, C/ProgramFiles) и расположение сценариев (C/ProgramFiles/Scripts) в переменные среды системы. Добавьте версию 3.x и версию 2.x

Местоположение пути ранжируется внутри переменной среды. Если вы хотите использовать Python 2.x, просто сначала укажите путь к python 2.x, если вы хотите использовать Python 3.x, просто укажите 3.x

Это использует Python 2

Теперь, когда выпущен Python 3.3, проще всего использовать описанную здесь утилиту py.exe: http://www.python.org/dev/peps/pep-0397/

Это позволяет вам указать версию Python в вашем файле скрипта, используя директиву стиля UNIX. Есть также параметры командной строки и переменных среды для управления тем, какая версия Python запускается.

Самый простой способ получить эту утилиту - это установить Python 3.3 или более позднюю версию.

НаборPY_PYTHONпеременная среды как (или любая другая версия, которую вы хотите). Перезапустите терминал или cmd и введитеpy -0p. 2.6должен иметь*рядом с ним, что указывает на то, что сейчас это версия Python по умолчанию.

У меня была такая же проблема, и я решил ее, снова запустив установочный файл. когда вы делаете это, python автоматически узнает, что вы установили его раньше, поэтому он рекомендует вам 3 варианта! выберите изменить и выберите все пакеты, которые вы хотите изменить, затем на следующей странице вы можете проверить, добавлена ​​ли новая версия python в ваши переменные среды или нет. проверьте его, а затем выполните модификацию. Я сделал, и это решило.

Использование SET команда в Windows CMD, чтобы временно установить Python по умолчанию для текущего сеанса.

SET PATH=C:\Program Files\Python 3.5

Поскольку моя проблема была немного другой, и ничего из вышеперечисленного не сработало для меня, я добавлю то, что сработало для меня. Сегодня я установил новую программу запуска python для python 3.10, установил через нее версию, но окно команд не распознало версию. Вместо этого в нем перечислены более старые версии python3, которые были у меня на компьютере.

Наконец, в списке программ Windows я увидел, что у меня две версии лаунчера python. Я удалил старый, и теперь python 3.10 правильно отображается при запуске.py -0и является выбранной версией при запускеpy.

Извините, если это нубский ответ, я новичок во всем этом.

Попробуйте изменить путь в реестре Windows (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment).

Предостережение: не нарушайте реестр:)

Другие вопросы по тегам