Как выбрать версию python windows

Содержание
  1. Использование нескольких версий Python на unix-подобных операционных системах
  2. Использование нескольких версий Python на unix-подобных операционных системах.
  3. Что и зачем?
  4. Установка Python из репозиториев пакетов операционной системы
  5. Сборка из исходного кода
  6. pyenv
  7. Установка системным пакетным менеджером из сторонних источников
  8. Псевдонимы python , python2 , python3
  9. Установка poetry на системы с разными версиями Python
  10. Установка в выделенное виртуальное окружение
  11. Особенности использования poetry, установленного в виртуальное окружение
  12. Как переключаться между различными версиями Python. Как установить Python 2
  13. Как установить pyenv в Debian, Ubuntu, Linux Mint, Kali Linux и их производные
  14. Использование версий Python 2 в Debian, Ubuntu, Linux Mint, Kali Linux и их производных
  15. Установка нескольких версий Python в Windows с помощью Virtualenv
  16. TL; DR
  17. Длинная версия; Читать
  18. пролог
  19. 1. Установите virtualenv
  20. 2. Установите Python
  21. 3. Создать virtualenv
  22. 4. Обновите интерпретатор PyCharm
  23. 5. Установите пакеты

Использование нескольких версий Python на unix-подобных операционных системах

Использование нескольких версий Python на unix-подобных операционных системах.

Что и зачем?

Python как язык постоянно развивается. Ветка Py2 уже не поддерживается официально. Однако до сих пор существуют окружения, где приходится использовать Py2 и даже не свежий 2.7.x, а что-то постарее. Да и Python 3.x нынче — это большое семейство версий, кое-где несовместимых между собой, в т.ч. и синтаксически! Поэтому практикующий питонист широкого профиля должен понимать, как на одной машине иметь несколько версий среды исполнения. Даже если «в продакшне» и используется какой-нибудь Docker!

Установка Python из репозиториев пакетов операционной системы

Если вам повезло, то в репозитории пакетов ОС будет нужная версия Python, и вы сможете её установить с помощью команды вроде sudo apt-get install python3.5 . Однако достаточно старые дистрибутивы ОС могут не содержать новых версий Python, а достаточно новые дистрибутивы — старых версий Python. В особых случаях репозиторий вообще может содержать только одну версию среды исполнения.

Сборка из исходного кода

CPython — проект с исходным кодом. Доступ к исходному коду всех версий CPython позволяет собрать нужную версию самостоятельно. Однако это процесс, пусть и достаточно хорошо документирован, но всё же требует понимания того, что вам может потребоваться для компиляции кода под вашу операционную систему.

А ещё сборка из исходного кода — это единственный вариант для тех, кто хочет что-то в этом самом коде изменить или скомпилировать интерпретатор для какой-то экзотической платформы (встраиваемые системы, ретро-железо).

pyenv

Ещё одним из способов получения разных версий среды исполнения на одной машине является pyenv. Это «менеджер версий», выполненный в стиле rbenv для Ruby, nvm для NodeJS и т.п.

Миссия pyenv — управлять установленными версиями Python и делать некую версию «активной». Активная версия вызывается, если мы выполняем команду python (а также pip ), при этом разные проекты могут использовать разные активные версии и даже более чем одну одновременно. Последнее свойство полезно авторам библиотек, рассчитанных на широкий круг пользователей — таковые всегда нужно тестировать на разных версиях Python.

Установить pyenv достаточно просто, ведь инструмент представляет собой набор shell scripts. Именно поэтому получился pyenv максимально кроссплатформенным. Но за эту кроссплатформенность приходится платить тем, что каждую версию среды исполнения нужно компилировать из исходного кода! Для компиляции того же CPython потребуется компилятор Си ( gcc на Linux и clang на MacOS), и заголовочные файлы для библиотек, которые использует интерпретатор. Полный список пререквизитов для сборки приходится гуглить.

Установка системным пакетным менеджером из сторонних источников

Для большинства Unix-like ОС, помимо официальных репозиториев, существуют и неофициальные источники пакетов.

Для Debian-like систем, таких как Ubuntu и её производные, сторонние источники пакетов называются PPA, Personal Package Archives. Подключить любой PPA достаточно просто, но нужно понимать, что вы таким образом соглашаетесь на установку пакетов из стороннего источника, никак не подчиняющегося авторам дистрибутива ОС! Подключайте только хорошо зарекомендовавшие себя PPA, например от самих авторов ПО, которое вы хотите установить!

Читайте также:  Как создать мультизагрузочную флешку grub linux

Для Ubuntu-based систем существует PPA от команды «deadsnakes». Это проверенный источник пакетов с самыми разными версиями Python как для свежих релизов ОС, так и для релизов «второй свежести».

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

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

Псевдонимы python , python2 , python3

Исторически сложилось так, что интерпретатор Python запускается командой python . Но в какой-то момент случились Python3, обратная несовместимость, «разброд и шатания». Чтобы внести некоторую определённость, был представлен PEP-394: The «python» Command on Unix-Like Systems. Однако даже этот PEP разрешает разным системам самим выбирать, использовать ли Py2 и Py3 вместе или выбрать что-то одно. Системы должны лишь обеспечить, чтобы

  • команда python2 вызывала некую версию Python 2.x, если таковая вообще предоставляется;
  • команда python3 вызывала некую версию Python 3.x, если таковая предоставляется;
  • команда python соответствовала либо python2 , либо python3 (но не ссылалась на какую-то «третью» версию рантайма).

При этом не гарантируется, что все эти команды будут присутствовать в конкретном случае: где-то будет доступна только команда python3 , где-то — python2 . Псевдоним python вообще обязан присутствовать лишь в виртуальном окружении и всегда соответствовать той версии интерпретатора, которая была выбрана при создании окружения.

Такое «разнообразие» сильно усложняет жизнь разработчикам ПО, особенно — авторам инструментов разработки! Разработчик может написать скрипт для Py2 и указать в shebang #!/usr/bin/env python . Но на одних ОС команда python вообще не будет доступна и скрипт просто не запустится, а на других python будет означать какой-нибудь Python 3.8 и скрипт может даже запуститься, но сломается в процессе выполнения.

И даже если автор использует техники, позволяющие писать портируемый код (six, 3to2), умеющий выполняться и на Py2, и на Py3, всё равно непонятно что же указать в shebang!

Вышеупомянутый PEP советует

  • либо фиксировать версию явно (только Py2 или только Py3),
  • либо требовать использования виртуальных окружений (в ВО всегда будет доступна команда python )
  • либо не писать shebang руками, а вместо этого использовать средства setuptools или другой системы пакетирования, создающие точки входа в зависимости при установке пакета (у точек входа shebang будет правильный).

Установка poetry на системы с разными версиями Python

На момент написания статьи poetry (это такой менеджер виртуальных окружений, сборщик пакетов и проч — «швейцарский нож» разработчика на Python) страдал от проблем с версиями рантайма: при установке рекомендованными способом скрипт-установщик завершался с ошибкой, либо установка проходила успешно, но затем не работала сама программа.

Дело (было?) в том, что и в скрипте-установщике и в точках входа в программу в shebang прописан python ! Сама программа работает и на Py2, и на Py3, но авторы исходили из предположения, что на целевой системе в любом случае будет присутствовать псевдоним python , вызывающий тот или иной интерпретатор. На некоторых системах такой команды нет…

Если использовать pyenv, оный всегда предоставляет команду python и poetry «просто работает». Нет проблем и на старых дистрибутивах, где ещё не отказались окончательно от Py2 . И конечно всё работает в виртуальном окружении. Рассмотрим этот вариант поподробнее.

Читайте также:  Windows 10 образ для обновления

Установка в выделенное виртуальное окружение

Для начала нам понадобится само окружение. Предположим, что Python3 вы уже так или иначе поставили. Делаем раз

Программа установлена! Теперь создаём символическую ссылку на точку входа в папке, видимой в PATH , например, в $HOME/.local/bin :

Работает! Обновлять программу в будущем можно с помощью того же pip (который в окружении). А можно и вовсе автоматизировать процесс установки такого вот Python-софта с помощью pipx.

Особенности использования poetry, установленного в виртуальное окружение

Poetry построен так, чтобы работать с абстрактной версией python. Поэтому он хорошо сочетается с pyenv: один на себя берёт управление разными пайтонами, а другой — проектами на этих пайтонах.

Но эта привязка к команде python немного мешает, когда poetry установлен в своём собственном виртуальном окружении: в этом окружении Python уже известен и не может быть изменён. Данная особенность упомянута в документации к poetry, так что это «не баг, а фича». И всё же есть способ обойти сие ограничение: можно инициализировать окружение вручную с нужной версией Python и настроить poetry на использование этого готового окружения.

Для начала учим poetry создавать окружения не в своём кэше, а в папке с проектом:

С этих пор для каждого проекта виртуальное окружение будет располагаться в поддиректории .venv .

Уже в конкретном проекте инициализируем окружение командой

(для Py2 команда будет другой, т.к. модуль venv тогда ещё не поставлялся вместе со средой исполнения).

Теперь можно работать с poetry как обычно. Несмотря на то, что Python в проекте, возможно, отличается от рантайма, запускающего poetry!

Как переключаться между различными версиями Python. Как установить Python 2

pyenv позволяет легко переключаться между несколькими версиями Python. Он простой, ненавязчивый и следует традиции UNIX одноцелевых инструментов, которые хорошо справляются с одной задачей.

  • Позволит вам изменить глобальную версию Python для каждого пользователя.
  • Обеспечит поддержку версий Python для каждого проекта.
  • Позволит вам переопределить версию Python с помощью переменной среды.
  • Может искать команды одновременно в нескольких версиях Python. Это может быть полезно для тестирования версий Python с помощью tox.

В отличие от pythonbrew и pythonz, pyenv не:

  • Зависит от самого Python. pyenv был создан из чистых скриптах Bash. У Python нет проблем с начальной загрузкой.
  • Нуждается в загрузке в вашу оболочку. Вместо этого pyenv работает путём добавления каталога в ваш $PATH.
  • Управляет virtualenv. Конечно, вы можете создать virtualenv самостоятельно или с pyenv-virtualenv для автоматизации процесса.

На высоком уровне pyenv перехватывает команды Python с помощью исполняемых файлов оболочки, вставленных в ваш $PATH, определяет, какая версия Python указана вашим приложением, и передаёт ваши команды в правильную установку Python.

Как установить pyenv в Debian, Ubuntu, Linux Mint, Kali Linux и их производные

Всё ещё существует довольно много востребованных инструментов, которые не были перенесены с Python 2 на Python 3, что вызывает проблемы при их использовании. Эта страница расскажет, как безопасно использовать устаревшую версию.

Python 2 больше не поддерживается в репозиториях Debian. Это означает, что мы должны найти способ обойти эту проблему. pyenv решает эту проблему, позволяя нам устанавливать несколько версий Python, которые не конфликтуют друг с другом. В настоящее время его нет в репозиториях Debian или Kali, поэтому нам нужно будет установить его из исходников. К счастью, есть удобный скрипт установки, выпущенный авторами. Давайте вместе пройдём установку и настройку.

Начнём с установки зависимостей:

Далее мы просто запустим скрипт установки, написанный на bash. Если ZSH является оболочкой по умолчанию, после этого нам придётся отредактировать файл .zshrc.

Читайте также:  Update homebrew mac os

Если мы используем ZSH, то теперь мы добавим соответствующие строки в наш .zshrc.

Использование версий Python 2 в Debian, Ubuntu, Linux Mint, Kali Linux и их производных

Теперь мы можем установить Python 2 и сделать его нашей версией Python по умолчанию в pyenv:

Теперь мы можем устанавливать зависимости по мере необходимости для любых инструментов, которые мы используем. Когда мы хотим вернуться к Python 3, нам просто нужно установить значение global на system.

Следует иметь в виду, что нужно устанавливать зависимости через pip. apt будет не очень любезен, если вы пытаетесь установить зависимости Python 2 через него и через pip, поэтому в этом случае просто придерживайтесь pip.

Установка нескольких версий Python в Windows с помощью Virtualenv

Вы здесь, потому что:

  1. Вы используете ОС Windows версии 10+
  2. Вы хотели бы использовать несколько версий Python на одном компьютере
  3. Вы устали от интернета, говорящего вам «Просто используйте Virtualenv»

TL; DR

  1. Откройте Command Prompt и введите pip install virtualenv
  2. Скачайте нужную версию python (НЕ добавляйте в PATH!) И запомните путь только что установленной версии path\to\new_python.exe
  3. Чтобы создать virtualenv, откройте Command Prompt и введите
    virtualenv \path\to\env -p path\to\new_python.exe
  4. Если вы используете PyCharm , обновите Project Interpreter и Code compatibility inspection .
  5. Чтобы установить пакеты:
    (I) Активируйте virtualenv: откройте Command Prompt и введите path\to\env\Scripts\activate.bat
    (II) Установите нужные пакеты
    (III) Деактивируйте с помощью deactivate .

Длинная версия; Читать

пролог

Если вы используете приложение Anaconda, этот процесс может быть проще с их графическим интерфейсом. Я сам не пробовал, пожалуйста, дайте мне знать, как все прошло, если вы идете по этому пути 🙂

1. Установите virtualenv

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

2. Установите Python

Вы можете скачать Python с официального сайта, например, python3.7.3 здесь.

Файл, который вы должны загрузить, называется Windows x86–64 executable installer , или, Windows x86 executable installer если по какой-то причине вы используете 32-битные окна.

После завершения загрузки откройте исполняемый файл и появится приглашение для установки.

  • Вы НЕ хотите добавлять новый python в вашу PATH, поскольку у нас будет несколько версий python на одном компьютере, и мы хотим, чтобы каждое приложение знало только одну версию python.
  • Либо используйте предложенное по умолчанию местоположение для нового питона, либо укажите местоположение по вашему выбору. В любом случае, запомните это место, и давайте теперь будем обозначать его C:\ \Python37 .

3. Создать virtualenv

Откройте Command Prompt , или, если вы используете Anaconda, откройте Anaconda Prompt .

Решите , где вы хотите хранить virtualenv, например,
C:\Users\ \Anaconda3\envs\ .

4. Обновите интерпретатор PyCharm

Если вы используете PyCharm, откройте проект, над которым вы хотели бы поработать (то есть / будет написано с новой версией Python), и затем File -> Settings -> Project -> Project Interpreter нажмите значок шестеренки, а затем Add.. .

Откроется окно с подсказкой, которое позволит вам определить нового интерпретатора:

Предполагая, что вы используете проверку кода, вам может потребоваться указать PyCharm, какую версию Python проверять. Перейдите File -> Settings-> Editor -> Inspections -> Python -> Code compatibility Inspection , убедитесь, что поле вверху указывает на конкретный проект, над которым вы работаете, и отметьте поле вашей версии Python.

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

5. Установите пакеты

В настоящее время ваш virtualenv содержит только важные пакеты, pip и setuptools . Чтобы установить больше пакетов:

Оцените статью