Несколько версий Python в Windows

Обновлено: 03.07.2024

Я использую многие системы Microsoft Windows для разработки и тестирования; как реальные системы, так и виртуальные машины. На большинстве из них установлена ​​одна или несколько версий Python. Некоторые имеют много версий. И за эти годы я столкнулся с множеством проблем:

  • Старые программы, несовместимые с Python 3, ломаются на некоторых системах.
  • Новые программы, несовместимые с Python 2, ломаются над другими. (Да, я знаю, что Python 2 устарел, но реальность такова, что у меня все еще есть критически важные инструменты, которые зависят от него!)
  • Инструмент py.exe не обнаруживает некоторые установленные версии Python.
  • Команда python.exe не всегда запускает самую последнюю версию Python, установленную в системе.
  • И т. д.

Наконец-то я решил докопаться до сути. В этой записи блога я поделюсь с вами тем, что узнал.

Где взять Python для Microsoft Windows

Последние версии Microsoft Windows 10 имеют предустановленную заглушку python.exe, позволяющую напрямую перейти на страницу Microsoft Store. Оттуда вы можете скачать бесплатную версию Python, официально поддерживаемую Microsoft. Просто запустите python из командной строки и следуйте инструкциям на странице Microsoft Store.

Еще одна возможность — использовать стороннюю сборку для Microsoft Windows, например дистрибутив ActivePython, поддерживаемый ActiveState. Если вам по-прежнему нужен Python 2.7, их ActivePython 2.7 – это дистрибутив с включенными батареями и всеми встроенными модулями.

Внимание: эти дистрибутивы ActivePython бесплатны для разработки, но не для использования в производстве.

Существует множество других возможных альтернатив, перечисленные выше являются лишь некоторыми из наиболее распространенных.

Это разнообразие является доказательством жизнеспособности экосистемы Python. Но это также является источником многих проблем, так как разные версии делают разные, иногда конфликтующие, варианты установки!

Инструмент запуска py.exe

Инструмент запуска py.exe – это чрезвычайно важный инструмент, входящий в состав дистрибутивов Python 3 для Microsoft Windows. К сожалению, его установка не является обязательной и обычно не выбирается по умолчанию. Если вы когда-нибудь установите более одной версии Python в своей системе (возможно, Python 2.7 и Python 3.x), то это не составит труда: вы должны выбрать ее и установить.

Прежде всего, py.exe — это интерфейс для python.exe. По умолчанию он запускает последнюю установленную версию python.exe. Но у него есть возможность выбрать другую версию по желанию. Использование:
py [параметры py.exe] [параметры и аргументы python.exe]

Здесь в обоих случаях параметр --version интерпретировался python.exe, не py.exe.
В первом случае это был python.exe версии 3.9. .2 что побежал. Во втором это был python.exe версии 2.7.12.

Опция -0 указывает py.exe просто вывести список доступных экземпляров:

Есть также опция -0p, чтобы указать как версию, так и путь к экземплярам python.exe, которые он может использовать:

Экземпляры Python не видны py.exe

Иногда py.exe не видит некоторые установленные версии Python. Это часто бывает с экземплярами Python 2.7. Основная причина заключается в том, что программа установки для этих экземпляров не создала необходимые ключи реестра, используемые py.exe для перечисления установленных экземпляров.

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

  • Для пользовательских экземпляров (установленных в C:\Users\ВАШЕИМЯ\AppData\Local\Programs\Python) базовый ключ:
    HKEY_CURRENT_USER\Software\Python\PythonCore\MAJOR.MINOR\InstallPath\ .
  • Для общесистемных экземпляров (установленных в C:\Program Files\python или даже в C:\Python) базовый ключ:
    HKEY_LOCAL_MACHINE\Software\Python\ PythonCore\MAJOR.MINOR\InstallPath\.

В каждом из этих ключей необходимы три значения:

Например, для моей установки Python 2.7 мне пришлось добавить ключи и значения из этого файла .reg:

Автоматический запуск Python 2 или Python 3 для скриптов, которым это необходимо

Проблема: в оболочках Microsoft Windows (cmd или PowerShell) такого механизма нет. Вот где в дело вступает py.exe: на основе этого шебанга он выбирает правильный интерпретатор Python для использования в Microsoft Windows.

Используйте первый общий шебанг только, если ваши скрипты совместимы и с Python 2, и с Python 3. В наиболее распространенном случае, когда ваш скрипт совместим только с одним из двух, используйте правильный для этой версии.

Обратите внимание, что этот совет подходит и для Unix. При правильной настройке сценарий будет использовать правильную версию Python как в Unix, так и в Microsoft Windows.

Последнее важное замечание по этому поводу: оболочки Unix подавляют сценарии Python, созданные в Microsoft Windows, с CRLF в конце строк.Если вы хотите, чтобы ваш сценарий Python был переносимым на системы Mac и Linux, используйте окончания строк Unix LF даже в Microsoft Windows.

Запуск скриптов Python на основе расширения .py

Конфигурация локального компьютера

Команда assoc должна показывать, что расширение .py связано с классом Python.File . Если это не так, запустите assoc .py=Python.File, чтобы исправить это. И команда ftype должна показывать, что класс Python.File связан с командой py.exe или, если py.exe недоступен в вашей (очень старой) системе, с последней доступной командой python.exe.

Аргументы "%L" %* сообщают оболочке, что нужно добавить полный путь к сценарию и все его аргументы, если они есть.

Обратите внимание, что я видел случаи, когда эта команда была повреждена, вместо нее использовалась длинная строка символов мусора. Если он неверен или поврежден, исправьте его, запустив: ftype Python.File=C:\Windows\py.exe "%L" %*

Текущая конфигурация пользователя

Однако этого не всегда достаточно. Если вы установили экземпляр Python только для себя, а не для всех пользователей, общесистемные связи расширения с классом и класса с командой переопределяются ключами реестра HKCU, специфичными для пользователя:

В моем случае первый ключ определяется с тем же значением, что и глобальная общесистемная ассоциация, и это нормально. Если они не определены, как в случае с моим вторым ключом, это тоже нормально, так как будет использоваться общесистемная версия. Но опять же, эти два ключа могут быть неверными или поврежденными. Если они есть, исправьте их с помощью regedit.exe или вообще удалите.

Другие причины сбоя

  • ftype.exe хранит свои данные в реестре в ключе HKEY_LOCAL_MACHINE\Software\Classes\Python.File\shell\open\command
    Если этот ключ содержит подразделы (я видел это), то Microsoft Оболочки Windows путаются. В этом случае удалите подразделы.
  • Существует также ассоциация python.exe в HKEY_LOCAL_MACHINE\Software\Classes\Applications\%EXE%\shell\open\command .
    Если она определена, она должна содержать: C:\Windows\py.exe "% 1" (Аргумент "%L" %* также работает, но не уверен, что лучше.)
  • У двух вышеперечисленных есть аналоги в HKEY_CURRENT_USER\Software\Classes\. . Те же замечания.
  • Связи типов файлов также могут быть переопределены глобальными политиками, в том числе некоторыми, установленными вашим контроллером домена. Я никогда такого не видел, но имейте в виду, что это возможно.

Поиск python.exe в PATH

Программа установки Python дополнительно добавляет каталоги установки Python и Python Scripts в PATH. Это позволяет запускать интерактивные сеансы Python, введя python в командной строке. Кроме того, это позволяет запускать pip или инструменты, установленные pip, в каталог Scripts, просто введя их имя.

Обратите внимание, что это необязательно, потому что, как объяснялось выше, если у вас есть доступная команда py.exe, вы получите тот же результат, набрав py или py -n pip и т. д.

Наличие каталогов Python и Python Scripts в PATH делает работу более интуитивной и похожей на то, как это работает в Unix. Недостатком является то, что это делает смехотворно длинный путь Microsoft Windows PATH еще длиннее и потенциально может немного замедлить работу вашей системы.

Но более серьезная проблема может возникнуть, если у вас установлено несколько версий Python. Вы можете столкнуться с ситуациями, когда старая версия была установлена ​​с обновленным PATH, а более новая версия — без него. В результате команды py и python запускают разные версии Python, что может привести к проблемам. В этом случае вы должны исправить свой локальный, пользовательский и системный PATH, чтобы во всех случаях работала последняя версия Python.

Инструменты для управления PATH Microsoft Windows

paths.bat

Поскольку путь Microsoft Windows PATH очень длинный, часто бывает трудно определить, находится ли данный каталог в списке и где он находится. Инструмент paths.bat с открытым исходным кодом упрощает просмотр и, при необходимости, исправление вашего локального или системного PATH. По умолчанию он отображает все записи в вашем локальном PATH, по одной на строку. Это значительно облегчает просмотр того, что там находится. Это также позволяет фильтровать вывод с помощью инструментов фильтрации командной строки. Например:

Пути выполнения -? для отображения экрана справки с описанием всех доступных параметров. Следующие параметры будут особенно полезны для устранения проблем с конфигурацией Python:

  • -s указывает ему управлять системным PATH, а не PATH локальной оболочки по умолчанию.
  • -u указывает ему управлять пользовательским PATH, а не PATH локальной оболочки по умолчанию.
  • -r DIRECTORY указывает удалить этот DIRECTORY из управляемого PATH.
  • -m DIR1 -b DIR2 указывает ему переместить КАТАЛОГ 1 непосредственно перед КАТАЛОГОМ 2.

Другие инструменты библиотеки системных инструментов

Библиотека системных инструментов содержит paths.bat и другие инструменты для управления PATH:

  • который.exe включает в себя лучшее из Unix which и Microsoft Windows, где.exe и некоторые другие. Подробное описание возможностей файла which.exe см. в этом сообщении.
    — это простой сценарий оболочки Posix для выполнения тех же действий в оболочках Unix, что и paths.bat в оболочках Microsoft Windows.

Интерференция со ссылкой на Microsoft Store

В последних версиях Microsoft Windows 10 Microsoft устанавливает заглушку python.exe, которая перенаправляет вас в Microsoft Store, где вы можете загрузить их дистрибутив Python. Эта заглушка хранится в папке %LOCALAPPDATA%\Microsoft\WindowsApps (cmd) или $env:LOCALAPPDATA\Microsoft\WindowsApps (PowerShell).

Проблема: если вы устанавливаете дистрибутив стороннего производителя и добавляете его расположение в PATH Microsoft Windows, он иногда оказывается в PATH за заглушкой Microsoft!

Запуск python откроет Microsoft Store вместо только что установленного экземпляра Python.

Быстрый обходной путь: используйте py.exe вместо python.exe. Py.exe не использует PATH для поиска экземпляров и все равно найдет ваш последний python.exe.

Долгосрочное решение: переместите каталоги Python в системный PATH перед "%LOCALAPPDATA%\Microsoft\WindowsApps". Затем перезапустите открытые оболочки, чтобы получить измененный PATH.

Ниже приведен пример системы, в которой возникла эта проблема: (с использованием инструмента путей, описанного в предыдущем разделе).

В этом случае, чтобы переместить два вышеуказанных каталога перед "%LOCALAPPDATA%\Microsoft\WindowsApps", выполните:

Поиск скриптов Python в PATH без указания их расширения

Оболочки Microsoft Windows ищут команды, используя список неявных расширений, определенных в переменной среды PATHEXT. Это позволяет запустить скрипт, введя только его базовое имя без расширения. Например, в моей системе повторно используются сценарии testpy2.py и testpy3.py, описанные выше:

Если ваш PATHEXT не содержит .PY или .py (это не зависит от регистра, поэтому они эквивалентны), добавьте его как в системный PATHEXT, так и в PATHEXT вашей локальной оболочки. Пример для оболочки cmd.exe:

и для PowerShell:

Автоматизация всего этого

Если все вышеперечисленное вызывает у вас головную боль (у меня определенно вызывает!), есть способ сделать все автоматически. Библиотека системных инструментов с открытым исходным кодом содержит инструмент под названием PySetup.bat. Этот инструмент проверяет всю документированную выше информацию и, при необходимости, исправляет ее.

Сначала запустите pysetup без возможности проверить текущую конфигурацию. Затем, если что-то не так, и вы согласны с предложенными изменениями, запустите pysetup -s .

Когда все правильно, pysetup.bat выводит все зеленые статусы [OK]:

Исправление отсутствующих экземпляров, которые py.exe не видит

Еще одна особенность pysetup.bat заключается в том, что он может сканировать известные места на диске в поисках экземпляров Python и при необходимости регистрировать отсутствующие записи, чтобы py.exe знал о них.

Сначала запустите pysetup -l, чтобы получить список экземпляров. (Это может занять некоторое время, если у вас медленный диск.)

Сравните это с выводом команды py -0p.

  • Если какой-либо из них отсутствует (как в случае с Python 2.7.12), запустите python -r ВЕРСИЯ, чтобы устранить проблему. Пример:

Заключение

Я надеюсь, что этот пост был вам полезен при решении некоторых проблем, которые могут возникнуть при настройке нескольких экземпляров Python в средах Microsoft Windows. Не забывайте заглядывать в блог HPE DEV, чтобы получать более информативные руководства.

У меня на компьютере были установлены две версии Python (версии 2.6 и 2.5). Я хочу запустить 2.6 для одного проекта и 2.5 для другого.

Как указать, что я хочу использовать?

Я работаю над Windows XP SP2.


Хорошим советом для задавания вопросов является объяснение того, что вы пробовали и почему это не удалось. Итак: что вы пробовали и почему это не сработало?

Обратите внимание, я не смог найти предыдущие вопросы об этом в Windows, поэтому я изменил заголовок, чтобы отразить это.

19 ответов 19

Запустить другую копию Python так же просто, как запустить правильный исполняемый файл. Вы упомянули, что запустили экземпляр python из командной строки, просто введя python .

Что это делает в Windows, так это просматривает переменную среды %PATH%, проверяя исполняемый файл, либо пакетный файл ( .bat ), командный файл ( .cmd ), либо какой-либо другой исполняемый файл для запуска (это контролируется переменная окружения PATHEXT), которая соответствует заданному имени. Когда он находит правильный файл для запуска, файл запускается.

Теперь, если вы установили две версии Python 2.5 и 2.6, путь будет содержать обе их директории, что-то вроде PATH=c:\python\2.5;c:\python\2.6, но Windows перестанет проверять путь, когда он находит совпадение.

На самом деле вам нужно явно вызвать одно или оба приложения, например c:\python\2.5\python.exe или c:\python\2.6\python.exe .

Другой вариант — создать ярлык для соответствующего python.exe, назвав один из них python25, а другой — python26; затем вы можете просто запустить python25 в командной строке.

В Windows перейдите к папке, содержащей версию Python, для которой вы хотите создать ярлык, затем щелкните правой кнопкой мыши и создайте ярлык. Затем вы можете переименовать его.

Извините, что откопал длинный мёртвый пост, но как заставить ярлык работать, не требуя расширения .lnk?

Если ярлык не работает, вы можете сделать, как сказал @F.J, просто скопировать и переименовать. В противном случае вы можете создать символическую ссылку, используя ''mklink'' в командной строке.

Не лучше ли создать файл bat с именами python25 и python26 и сделать так, чтобы они вызывали соответствующую версию? Тогда все, что вам нужно сделать, это поместить эти 2 bat-файла рядом с их двоичными файлами.

Добавление еще двух решений проблемы:

  • Используйте pylauncher (если у вас Python 3.3 или новее, нет необходимости устанавливать его, так как он уже поставляется с Python) и либо добавьте строки shebang в свои скрипты;

или вместо запуска команды python запустите команду pylauncher ( py ), указав, какую версию Python вы хотите;

py -2.6 — версия 2.6
py -2 — последняя установленная версия 2.x
py -3.4 — версия 3.4
py -3 — последняя установленная версия 3.x

virtualenv -p c:\[путь к Python 2.5]\python.exe [путь, по которому вы хотите создать виртуальную среду с использованием Python 2.5]\[имя виртуальной среды]

virtualenv -p c:\[путь к Python 2.6]\python.exe [путь, по которому вы хотите создать виртуальную среду с использованием Python 2.6]\[имя виртуальной среды]

virtualenv -p c:\python2.5\python.exe c:\venvs\2.5

virtualenv -p c:\python2.6\python.exe c:\venvs\2.6

затем вы можете активировать первую и работать с Python 2.5 следующим образом
c:\venvs\2.5\activate
и когда вы захотите переключиться на Python 2.6, вы это сделаете

pylauncher, по-видимому, представляет собой прототип реализации PEP 397, который был принят в качестве стандарта еще в 2011 году. Знаете ли вы, почему средство запуска до сих пор не распространяется вместе с Python для Windows или почему до сих пор существует только прототип реализации Виная Саджипа?

Спасибо за пояснение. ИМХО, pylauncher также должен распространяться как часть последней версии Python 2, потому что люди, использующие эту версию, с большей вероятностью захотят установить несколько версий (и с большей вероятностью сделают это, если будут знать о ее функциональности и доступности).< /p>

StackOverflow должен допускать несколько голосов "за", ваш ответ заслуживает бесконечного количества голосов "за"! Серьезно, где ты был, братан! :D Просто, понятно и конечно работает!

Это ответ, который я ищу. Я запускаю Windows 10 с Python 2.7 и Python 3.4.3. В командной строке введите «py [номер_версии_python]», например: py -3 или py вызовет имеющуюся у вас версию Python. Я думаю, что переменные среды должны быть установлены перед использованием этого. мне это удобно.

@Inuka: Никаких переменных среды устанавливать не нужно. Установщик Python устанавливает ассоциации с расширением .py. Сам лаунчер устанавливается в папку C:\Windows, которая уже находится в PATH. Таким образом, также не нужно изменять переменную PATH.

Большое спасибо за ответ, приятель. Таким образом, мы также можем вызвать пункт. py -2 -m pip установить SomePackage или py -3.4.3 -m pip установить SomePackage

Спасибо! комментарии были действительно полезны. Как мне активировать виртуальную среду с одной из версий Python, которые у меня есть, используя pipenv?

Согласно @alexander, вы можете создать набор символических ссылок, как показано ниже. Поместите их куда-нибудь, что включено в ваш путь, чтобы их можно было легко вызывать

Пока c:\bin или куда вы их поместили, находится на вашем пути, теперь вы можете идти

Умная идея. Кстати, mklink изначально доступен только в Windows Vista/2008+. В XP и Server 2003 вместо этого можно создать «жесткую ссылку», используя fsutil hardlink create и поместив или переместив куда-нибудь на вашем пути. Однако жесткие ссылки работают только на одном диске.

Да, требуется поддержка символических ссылок NTFS, которые, как мне кажется, были введены в Vista (могу ошибаться). Использование на XP требует использования другого драйвера. Похоже, его отключили на каком-то этапе перед общим выпуском.

Например, для версии 3.6 введите py -3.6 . Если у вас также есть 32-битная и 64-битная версии, вы можете просто ввести py -3.6-64 или py -3.6-32 .


Возможно, это лучший ответ, так как он не требует переименования файлов, а сторонние IDE обнаружат и то, и другое как обычно!

  • PYTHON2_HOME: C:\Python27
  • PYTHON3_HOME: C:\Python36
  • Путь: %PYTHON2_HOME%;%PYTHON2_HOME%\Scripts;%PYTHON3_HOME%;%PYTHON3_HOME%\Scripts;
  • C:\Python27\python.exe → C:\Python27\python2.exe
  • C:\Python36\python.exe → C:\Python36\python3.exe
  • установочный пакет python2 -m pip
  • установочный пакет python3 -m pip

Я думаю, что более или менее это практическое решение вопроса. Это более удобно по сравнению с подходом, при котором для вызова скрипта Python используется ярлык/символическая ссылка. Вместо переименования файла мы можем скопировать и вставить двоичный файл (python.exe), а затем переименовать его в соответствии с его версией (как показано в этом ответе). Кстати, команда python может сбить с толку ОС.

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

Я настоятельно рекомендую проект pyenv-win.

введите здесь описание изображения

Благодаря работе kirankotari теперь у нас есть версия pyenv для Windows.


Одним из простых способов для этого является использование

py -3.8 -m pip install virtualenv здесь -3.8 идет с вашим [номер версии]

После установки virtualenv вы можете создать виртуальную среду своего приложения с помощью

py -3.8 -m virtualenv [имя вашей среды]

затем перейдите к venv, введите активировать

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


Когда вы устанавливаете Python, он не перезаписывает другие установки других основных версий. Таким образом, установка Python 2.5.x не перезапишет Python 2.6.x, хотя установка 2.6.6 перезапишет 2.6.5.

Таким образом, вы можете просто установить его. Затем вы вызываете нужную версию Python. Например:

для Python 2.5 в Windows и

для Python 2.6 в Windows или

в Windows Unix (включая Linux и OS X).

При установке в Unix (включая Linux и OS X) вы получите общую команду Python, которая будет установлена ​​последней. В основном это не проблема, так как большинство сценариев явно вызывают /usr/local/bin/python2.5 или что-то еще, чтобы защититься от этого. Но если вы не хотите этого делать, а вы, вероятно, не хотите, вы можете установить его следующим образом:

Обратите внимание на "altinstall", что означает, что программа установит его, но не заменит команду python.

Насколько я знаю, в Windows вы не получаете глобальную команду python, так что это не проблема.


спасибо за помощь, пожалуйста, ответьте на мой второй вопрос: как я могу запустить оба одновременно? как я успешно перешел с 2.5 на 2.6

@Bilal Basharat: Windows — это многозадачная ОС, если вы хотите запускать две вещи одновременно, вы просто запускаете обе, поэтому я не понимаю вашего вопроса.

в настоящее время я работаю над python2.5. просто объясните мне, как я могу запустить 2.6? когда я пишу «python» в командной строке Windows, чтобы войти в оболочку python, появляется python2.5. на диске c у меня были установлены обе версии. когда я иду в C:\Python2.6\Python.exe. чем python2.6 временно активирован. как только я покидаю C:\Python2.6\, он снова превращается в версию 2.5

@Bilal Basharat: Я уже ответил на этот вопрос. Он не "временно активирован". Вы запустили Python 2.6 с помощью команды C:\Python2.6\Python.exe, и именно так вы его запускаете. И вы запускаете Python 2.5 с помощью команды C:\Python2.5\Python.exe. Вот как вы запускаете оба одновременно.

@Bilal Basharat: Если каталог C:\Python2.5 или C:\Python2.6 указан в вашей переменной среды PATH, соответствующая версия Python станет версией по умолчанию, если вы не переопределите явно указав другой путь к .exe, который вы хотите использовать.

Вот быстрый лайфхак:

  1. Перейдите в каталог версии Python, которую вы хотите запустить
  2. Щелкните правой кнопкой мыши файл python.exe
  3. .
  4. Выберите "Создать ярлык"
  5. .
  6. Дайте ярлыку имя для вызова (я использую p27, p33 и т. д.)
  7. Переместите этот ярлык в свой домашний каталог (C:\Users\Ваше имя)
  8. Откройте командную строку и введите name_of_your_shortcut.lnk (я использую p27.lnk )


cp c:\python27\bin\python.exe как python2.7.exe

cp c:\python34\bin\python.exe как python3.4.exe

все они находятся в системном пути, выберите версию, которую хотите запустить

это сработало для меня. Просто нужно использовать копию вместо cp. Также при запуске этой команды вы должны быть где-то на пути, и обе установки python, например. c:\python34\bin\python.exe и c:\python27\bin\python.exe также должны быть в пути. (желательно именно в таком порядке).

Самый простой способ запуска нескольких версий Python в Windows описан ниже:-

2) Запустите установщик и выберите Добавить python 3.x в путь, чтобы автоматически установить путь в python 3 (вам просто нужно установить флажок). Для python 2 откройте установщик python 2, выберите любые настройки, которые вы хотите, но не забудьте установить для параметра «Добавить python.exe путь» значение «Будет установлен на локальном жестком диске». Теперь просто нажмите «Далее» и дождитесь завершения установки.

3) Когда обе установки будут завершены. Щелкните правой кнопкой мыши на моем компьютере — перейдите к свойствам — выберите дополнительные параметры системы — перейдите к переменным среды — щелкните «Создать» в разделе «Системные переменные» и добавьте новую системную переменную с именем переменной PY_PYTHON и установите для этой переменной значение 3. Теперь нажмите OK, и все готово.

4) Теперь, чтобы проверить это, откройте командную строку. Когда вы там наберете python или py, он должен открыть python3.

5) Теперь выйдите из python3, набрав exit(). Теперь введите py -2, он должен открыть python 2.

Если ничего из этого не работает, перезагрузите компьютер, и если проблема не устранена, удалите все и повторите шаги.

pyenv можно использовать для установки версий Python 2 и 3. Однако, как мы видели, venv ограничен версиями Python выше 3.3. … По-прежнему рекомендуется использовать официальную версию Python, где это возможно. Но если, например, вы создаете виртуальную среду на базе 2.7.

Как установить несколько версий Python в Windows 10?

Откройте исполняемый файл:

  1. Дважды щелкните файл Python.
  2. Установите флажок "Добавить Python ** в PATH".
  3. Нажмите «Установить сейчас».
  4. Повторить.

Можете ли вы использовать Python 2 и 3 одновременно?

Вы можете легко поддерживать отдельные среды для программ Python 2 и программ Python 3 на одном компьютере, не беспокоясь о взаимодействии программ друг с другом. Активируйте и используйте среду Python 2. …

Как использовать Python 2.7 вместо 3?

В качестве альтернативы вы можете заменить символическую ссылку «python» в /usr/bin, которая в настоящее время ссылается на python3, на ссылку на требуемый python2/2. х исполняемый файл. Затем вы можете просто назвать его так же, как в Python 3. Вы можете использовать псевдоним python="/usr/bin/python2.

Сколько версий Python у меня установлено?

Проверить версию Python из командной строки/скрипта

  1. Проверьте версию Python в командной строке: –version , -V , -VV.
  2. Проверьте версию Python в скрипте: sys , platform. Различные информационные строки, включая номер версии: sys.version. Кортеж номеров версий: sys.version_info.

Какую версию Python мне выбрать?

Стандартно рекомендуется использовать команду python3 или python3. 7, чтобы выбрать конкретную версию. Средство запуска py.exe автоматически выберет самую последнюю версию Python, которую вы установили. Вы также можете использовать такие команды, как py -3.7, чтобы выбрать конкретную версию, или py –list, чтобы увидеть, какие версии можно использовать.

Как включить VENV в Python?

Сколько версий Python установлено в Windows?

Версии Python

  1. Откройте командную строку: меню "Пуск" -> "Выполнить" и введите cmd.
  2. Тип: C:Python34python.exe.

Поддерживает ли Python 3.9 TensorFlow?

Для поддержки Python 3.9 требуется TensorFlow 2.5 или более поздней версии. Для поддержки Python 3.8 требуется TensorFlow 2.2 или более поздней версии.

Вывод. Вы можете запустить несколько версий Python в Windows одним из следующих способов:

➠ Формулировка проблемы. Возможно, на вашем компьютере с Windows установлены две версии Python (версии 2.7 и 3.8). Теперь вы хотите запустить один из проектов на 2.6 для одного проекта и 2.5 для другого. Так как же указать, какую версию вы хотите использовать для конкретного скрипта?

Таким образом, в этой статье вы узнаете, как запускать несколько версий Python в Windows с визуальными эффектами и иллюстрациями. Но прежде чем двигаться дальше, вы должны знать о различных версиях Python, установленных в вашей системе.

Оглавление

❖ Как проверить все установленные версии Python в Windows?

Введите следующую команду в командной строке, чтобы найти версии Python, доступные в вашей системе:

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

Следующая графическая иллюстрация поможет вам четко понять приведенные выше команды.

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

❖ Способ 1: использование пути

Когда вы пытаетесь запустить Python из командной строки, он ищет переменную среды %PATH% и проверяет наличие исполняемого файла, который может быть либо пакетным файлом (.bat), либо командным файлом (.exe ) или любой другой исполняемый файл ( .exe ), имя которого соответствует указанному. Как только правильный файл найден, он выполняет программу, используя этот файл. Теперь, если в вашей системе установлены две версии Python (Python 2.7 и 3.8), то переменная пути будет содержать расположение обоих каталогов. Но проблема в том, что как только Windows найдет первое совпадение, она перестанет проверять любой другой путь.

Чтобы преодолеть этот барьер, вы должны явно вызвать одно или оба приложения, используя их путь. Например, как вы можете видеть ниже, в моей системе установлены две версии Python.

  • Чтобы выполнить код в Python 2.7, необходимо вызвать c:\Python27\python.exe
  • Чтобы выполнить код в Python 3.8, необходимо вызвать C:\ProgramData\Anaconda3\python.exe . Однако в этом нет необходимости, так как в этом случае по умолчанию уже выбрана версия Python-3.8.

❖ Способ 2: создание ярлыка или символической ссылки

➥ Создание ярлыка: Если вы хотите избежать использования всего пути, вы можете создать ярлык для каждого отдельного файла python.exe и переименовать их в python27 и python38. Теперь вы можете запускать каждую версию напрямую, используя соответствующие ярлыки.

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

  • Перейдите к папке, содержащей версию Python, для которой вы хотите создать ярлык,
  • Нажмите правой кнопкой мыши и создайте ярлык.
  • Переименуйте ярлык.

➥ Создание символической ссылки: Кроме того, вы также можете создать символическую ссылку на соответствующие исполняемые файлы и переименовать их. Затем вы можете выполнить свой код, используя python27, то есть имя, которое вы дали.

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

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


❖ Способ 3: Использование Python Launcher

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

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

Вы можете просто использовать строку shebang в своем скрипте, чтобы указать версию, в которой вы хотите, чтобы скрипт выполнялся.

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


➥ Подход 2: запуск команды Pylauncher

Если вас не устраивает shebang, вы можете напрямую запустить скрипт в определенной версии с помощью команды pylauncher, т.е. py-версия .

  • py -2.6 — для запуска скрипта в Python версии 2.6
  • py -2 — для запуска скрипта в последней установленной версии Python 2.x
  • py -3.4 — для запуска скрипта в Python версии 3.4
  • py -3 — или запуск скрипта в последней установленной версии Python 3.x

Пример:


❖ Метод 4: Использование виртуальных сред

Еще один подход к запуску разных версий Python в Windows – установка virtualenv и создание двух независимых виртуальных сред для соответствующих версий Python.

➥ Синтаксис:

virtualenv -p c:\[путь к требуемой версии Python]\python.exe [путь, где вы хотите сохранить virtualenv, использующий указанную версию Python]\[имя virtualenv]

➥ Пример:

После создания виртуальных сред вы можете активировать определенную среду для использования этой версии, как показано ниже:

Для деактивации используйте команду: C:\venvs\3.8\Scripts\deactivate

❖ Как выбрать версию Python в PyCharm?

Если вы используете Pycharm для выполнения своего кода, вы можете сделать это с помощью следующих шагов:

  • Перейти к файлу
  • Выберите настройки
  • Выберите проект: имя_проекта ➟ Интерпретатор Python.
  • Выберите нужный интерпретатор (версию). (Добавьте его, если его нет в списке.)

Примечание. В PyCharm 2019.1 и более поздних версиях появилась новая функция, известная как Интерпретатор в строке состояния. Эта функция позволяет переключаться между интерпретаторами Python и проверять, какую версию Python вы используете, намного проще и удобнее. Эта функция показана на изображении ниже (выделено красным в правом нижнем углу).


Заключение

Мы подошли к концу этого руководства, и я надеюсь, что оно помогло вам. Подпишитесь и следите за новостями, чтобы не пропустить новые интересные статьи.

  • Хотите быстро освоить самую популярную среду разработки Python?
  • Этот курс превратит вас из новичка в эксперта по PyCharm примерно за 90 минут.
  • Для любого разработчика программного обеспечения крайне важно хорошо освоить IDE, чтобы писать, тестировать и отлаживать высококачественный код без особых усилий.

Присоединяйтесь к мастер-классу по PyCharm прямо сейчас и освойте PyCharm уже завтра!

Я профессиональный блоггер Python и создатель контента. Я опубликовал множество статей и создал курсы за определенный период времени. В настоящее время я работаю штатным фрилансером и имею опыт работы в таких областях, как Python, AWS, DevOps и сети.

Вы можете связаться со мной @:

Почему Finxter?

"Дайте мне достаточно длинный рычаг [. ], и я переверну мир." 🌍 - Архимед

Finxter стремится быть вашим рычагом! Наша единственная цель — увеличить коллективный интеллект человечества с помощью учебных пособий по программированию, чтобы вы могли использовать бесконечный вычислительный интеллект для своего успеха! 🧠

Учебные ресурсы

Присоединяйтесь к нашей бесплатной академии электронной почты с более чем 1000 руководств по Python, фрилансу, науке о данных и машинному обучению, а также технологии блокчейн!

Читайте также: