Содержание
Краткая памятка по установке разных версий Python в Anaconda
- Откройте Anaconda Prompt или терминал.
- Проверьте текущую версию Python: python —version.
- Создайте новое окружение с нужной версией: conda create -n new_env python=3.10.
- Активируйте окружение: conda activate new_env.
- Установите необходимые пакеты: conda install numpy pandas.
- Проверьте версию Python в новом окружении: python —version.
- Для переключения на другую версию деактивируйте текущее окружение: conda deactivate.
- Активируйте другое окружение: conda activate other_env.
- Удалите ненужное окружение: conda remove —name old_env —all.
- Обновляйте conda регулярно: conda update conda.
- Используйте conda-forge для расширения списка доступных версий.
- Создавайте резервные копии окружений через conda env export.
- Не устанавливайте разные версии Python в базовое окружение.
Установка нескольких версий Python в Windows с помощью 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. Установите пакеты
Открываем PowerShell
PowerShell — это командная оболочка и объектно-ориентированный язык сценариев, который используется для настройки системных параметров и автоматизации задач администрирования. В операционной системе практически все автоматизируется с помощью этой оболочки. Кроме того, она заменила собой командную строку и стала стандартной системной оболочкой для Windows 10.
- Нажимаем на ⊞ Windows.
- Вводим в строке поиска PowerShell.
- Нажимаем на Run as Administrator («Запуск от имени администратора»).
Проверяем версию по умолчанию
Для проверки того, какая версия Python выбрана в настоящий момент в качестве версии по умолчанию, используется параметр Version (V). Он состоит из трех разделенных точками чисел, которые обозначают номер версии major (старшая версия), minor (младшая версия) и micro (с мелкими изменениями) соответственно. Здесь также отображается сообщение об ошибке, в случае если Python еще не установлен на компьютере.
Проверяем исполняемый файл
Определить местоположение исполняемого файла для указываемого имени команды позволяет команда Which. Она ищет исполняемый файл в списке каталогов, перечисленных в переменной окружения PATH. Кроме того, эта команда показывает абсолютный путь к исполняемому файлу, если таковой существует в одном из каталогов.
Создаем временный каталог
Команда Make Directory(mkdir) используется для создания новых каталогов. Она указывает один или несколько относительных или абсолютных путей с именами вновь создаваемых каталогов. А еще эта команда используется с флагом Parents для создания (в случае необходимости) родительских каталогов без перезаписи уже имеющегося пути.
Открываем временный каталог
Для изменения текущего рабочего каталога на желаемый используется команда Change Directory(cd) («Изменить каталог»). С ее помощью перемещаются к абсолютному и относительному путям, которые начинаются соответственно от корневого и текущего рабочего каталога. Кроме того, она помогает перемещаться к путям, хранящимся в переменных и переменных окружения.
Устанавливаем версию по умолчанию для каталога
В Pyenv для указания версии Python по умолчанию, принимаемой для текущего каталога, используется команда Local. С ее помощью в текущем каталоге создается текстовый файл, в котором хранится указанная версия. Файл автоматически обнаруживается Pyenv, который активирует версию Python в текущем каталоге и подкаталогах.
Для проверки того, какая версия Python выбрана в настоящий момент в качестве версии по умолчанию, используется параметр Version(V). Он состоит из трех разделенных точками чисел, которые обозначают номер версии major (старшая версия), minor (младшая версия) и micro (с мелкими изменениями). Здесь также отображается сообщение об ошибке, в случае если Python еще не установлен на компьютере.
Создаем виртуальную среду
Виртуальная среда представляет собой изолированный каталог установки Python с собственным интерпретатором, пакетами сайта и скриптами. Она используется в основном для предотвращения конфликтов версий между зависимостями из разных проектов. А кроме того, она применяется для соблюдения требований к зависимостям различных программ из GitHub.
Активируем виртуальную среду
Для запуска виртуальной среды используется скрипт активации Activate. Он добавляет путь виртуальной среды в переменную окружения PATH, устанавливающую новый интерпретатор Python и диспетчер пакетов в качестве версии по умолчанию. А еще он задает пакеты для установки в каталоге установки виртуальной среды.
Определить местоположение исполняемого файла для указываемого имени команды позволяет команда Which. Она ищет исполняемый файл в списке каталогов, перечисленных в переменной окружения PATH. Кроме того, эта команда показывает абсолютный путь к исполняемому файлу, если таковой существует в одном из каталогов.
Деактивируем виртуальную среду
Команда деактивации Deactivate используется для остановки виртуальной среды. Она удаляет путь виртуальной среды из переменной среды PATH, которая устанавливает последний интерпретатор Python и диспетчер пакетов в качестве версии по умолчанию. А еще эта команда задает пакеты для установки в каталоге установки системы Python.
Использование нескольких версий Python на unix-подобных операционных системах
Python как язык постоянно развивается. Ветка Py2 уже не поддерживается официально. Однако до сих пор существуют окружения, где приходится использовать Py2 и даже не свежий 2.7.x, а что-то постарее. Да и Python 3.x нынче — это большое семейство версий, кое-где несовместимых между собой, в т.ч. и синтаксически! Поэтому практикующий питонист широкого профиля должен понимать, как на одной машине иметь несколько версий среды исполнения. Даже если «в продакшне» и используется какой-нибудь Docker!
Установка Python из репозиториев пакетов операционной системы
Сборка из исходного кода
CPython — проект с исходным кодом. Доступ к исходному коду всех версий CPython позволяет собрать нужную версию самостоятельно. Однако это процесс, пусть и достаточно хорошо документирован, но всё же требует понимания того, что вам может потребоваться для компиляции кода под вашу операционную систему.
А ещё сборка из исходного кода — это единственный вариант для тех, кто хочет что-то в этом самом коде изменить или скомпилировать интерпретатор для какой-то экзотической платформы (встраиваемые системы, ретро-железо).
pyenv
Ещё одним из способов получения разных версий среды исполнения на одной машине является pyenv. Это «менеджер версий», выполненный в стиле rbenv для Ruby, nvm для NodeJS и т.п.
Миссия pyenv — управлять установленными версиями Python и делать некую версию «активной». Активная версия вызывается, если мы выполняем команду python (а также pip), при этом разные проекты могут использовать разные активные версии и даже более чем одну одновременно. Последнее свойство полезно авторам библиотек, рассчитанных на широкий круг пользователей — таковые всегда нужно тестировать на разных версиях Python.
Установить pyenv достаточно просто, ведь инструмент представляет собой набор shell scripts. Именно поэтому получился pyenv максимально кроссплатформенным. Но за эту кроссплатформенность приходится платить тем, что каждую версию среды исполнения нужно компилировать из исходного кода! Для компиляции того же CPython потребуется компилятор Си (gcc на Linux и clang на MacOS), и заголовочные файлы для библиотек, которые использует интерпретатор. Полный список пререквизитов для сборки приходится гуглить.
Псевдонимы 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!
- либо фиксировать версию явно (только Py2 или только Py3),
- либо требовать использования виртуальных окружений (в ВО всегда будет доступна команда python)
- либо не писать shebang руками, а вместо этого использовать средства setuptools или другой системы пакетирования, создающие точки входа в зависимости при установке пакета (у точек входа shebang будет правильный).
Открываем WSL2
Подсистема Windows для Linux 2 (WSL2) — это функциональная особенность Windows 10, позволяющая пользователям запускать Linux на Windows без использования многовариантной загрузки или виртуальной машины. Она имеет полный доступ к файловым системам, поддержке графических процессоров и сетевых приложений. А кроме того, предоставляет доступ к тысячам инструментов командной строки Linux.
- Копируем команду из приведенных ниже инструкций.
- Вставляем команду в PowerShell.
- Нажимаем на Enter («Ввод»).
Открываем домашний каталог
Для изменения текущего рабочего каталога на желаемый используется команда Change Directory (cd) («Изменить каталог»). С ее помощью перемещаются к абсолютному и относительному путям, которые начинаются соответственно от корневого и текущего рабочего каталога. Кроме того, она помогает перемещаться к путям, хранящимся в переменных и в переменных окружения.
Устанавливаем Git
Git — это программа, которая используется для отслеживания изменений, время от времени вносимых в исходный код. Она работает с проектами любых размеров и позволяет сразу нескольким разработчикам и командам вносить изменения в один и тот же репозиторий. А кроме того, она делает возможным восстановление из общей истории репозитория предыдущей версии исходного кода.
Клонирование репозитория Pyenv
Pyenv — это программа, которая используется для управления версиями Python на macOS и Linux. С ее помощью устанавливаются несколько версий Python, указывается версия, которая задействуется в рамках всей системы, а также версия, применяемая в определенных каталогах. Кроме того, она позволяет создавать виртуальные среды и управлять ими с использованием определенных версий.
Открываем файл конфигурации Bash
Редактируем файл конфигурации Bash
Bourne Again Shell (Bash) — это командная оболочка и язык сценариев, который используется для настройки системных параметров и автоматизации задач администрирования. В операционной системе практически все автоматизируется с помощью этой оболочки. Для большинства операционных систем на базе Linux она была и остается оболочкой по умолчанию.
- Копируем код из приведенных ниже инструкций.
- Вставляем код в Notepad.
- Нажимаем на меню File («Файл»).
- Нажимаем на Save («Сохранить»).
Перезапуск WSL2
Для выполнения указываемой команды, предоставляемой в качестве аргумента, используется команда Exec(e). Она удаляет текущий процесс и заменяет его указываемой командой без создания нового процесса. А еще команда перезапускает оболочку для перезагрузки файла конфигурации в окружении.
Устанавливаем зависимости Pyenv
Зависимость — это дополнительный двоичный пакет, необходимый конкретному двоичному пакету для правильной работы. Для создания практически любой программы, распространяемой через диспетчеры пакетов, требуется несколько зависимостей. Некоторые диспетчеры пакетов загружают и устанавливают зависимости автоматически.
Просматриваем версии Python
Для отображения версий Python, доступных в Pyenv, используется флаг List(l). Сюда относятся финальные версии, выпущенные Python, Anaconda, PyPy, Jython и Stackless, в том числе все major (старшие версии), minor (младшие версии) и micro (версии с мелкими изменениями). Не отображаются альфа-, бета-версии, т. е. предвыпускные версии.
Устанавливаем Python
Python — это объектно-ориентированный язык, славящийся простым синтаксисом, удобным для восприятия человека кодом, гибкостью и масштабируемостью. Он используется в основном для разработки веб-приложений и программных продуктов. А кроме того, Python стал одним из самых популярных языков для искусственного интеллекта, машинного обучения и науки о данных.
- Находим версию из приведенных ниже инструкций.
- Копируем предлагаемую команду.
- Вставляем команду в PowerShell.
- Нажимаем на Enter («Ввод»).
- Повторяем.
Устанавливаем версию по умолчанию для компьютера
В Pyenv для указания версии Python по умолчанию, принимаемой для всей системы, используется команда Global. С ее помощью в каталоге Pyenv создается текстовый файл, в котором хранится указанная версия. Он используется Pyenv для активации версии по умолчанию, но перезаписывается локальным текстовым файлом Pyenv и переменной окружения.
Установка poetry на системы с разными версиями Python
На момент написания статьи poetry (это такой менеджер виртуальных окружений, сборщик пакетов и проч — «швейцарский нож» разработчика на Python) страдал от проблем с версиями рантайма: при установке рекомендованными способом скрипт-установщик завершался с ошибкой, либо установка проходила успешно, но затем не работала сама программа.
Дело (было?) в том, что и в скрипте-установщике и в точках входа в программу в shebang прописан python! Сама программа работает и на Py2, и на Py3, но авторы исходили из предположения, что на целевой системе в любом случае будет присутствовать псевдоним python, вызывающий тот или иной интерпретатор. На некоторых системах такой команды нет…
Если использовать pyenv, оный всегда предоставляет команду python и poetry «просто работает». Нет проблем и на старых дистрибутивах, где ещё не отказались окончательно от Py2. И конечно всё работает в виртуальном окружении. Рассмотрим этот вариант поподробнее.
Установка в выделенное виртуальное окружение
Для начала нам понадобится само окружение. Предположим, что 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!
- Как установить вайбер на ноутбук бесплатно на русском языке для виндовс 10
- Как установить ворд и эксель на компьютер
- Как установить драйвер kyocera
- Как установить игру значок уголки
Глоссарий:
Оболочка — это интерпретатор, который представляет пользователям интерфейс командной строки, позволяя им взаимодействовать с ядром. Таким образом они управляют системой посредством вводимых с клавиатуры команд. А еще этот интерпретатор переводит команды с языка программирования на машинный язык ядра.
Интерпретатор — это программа, которая посредством инструкций читает то, что написано на удобных для восприятия человеком языках программирования, и выполняет эти инструкции, начиная с верхних и заканчивая нижними. Она переводит каждую команду на машинный язык, понятный аппаратным средствам, выполняет ее и переходит к следующей инструкции.
Интерфейс командной строки — это программа, которая принимает вводимый пользователем текст для выполнения команд в операционной системе. С помощью этих команд настраивается система, устанавливается программное обеспечение и получается доступ к функциям, недоступным в графическом интерфейсе пользователя. Интерфейс командной строки по-другому называется еще терминалом или консолью.
Ядро — это программа, которая лежит в основе операционной системы и управляет всем в компьютере. С ее помощью осуществляется управление памятью процессами, дисками и задачами. Кроме того, она облегчает взаимодействие на машинном языке между программами и аппаратными средствами.
Major (старшая версия) — это число представляет собой обновление, приносящее в программу существенные изменения. Оно добавляет другую архитектуру, функции и функциональные возможности, несовместимые с предыдущими версиями. Обычно это приводит к тому, что созданные с использованием предыдущей версии программы перестают работать.
Minor (младшая версия) — это число представляет собой обновление, приносящее в программу умеренные изменения. Оно добавляет небольшие функции и функциональные возможности, совместимые с последним крупным обновлением. Обычно это не вызывает проблем с программами, созданными с использованием предыдущих небольших обновлений.
Переменная — это контейнер, используемый для хранения различных типов значений. Присваивание или обновление значения переменной происходит через постановку знака равенства между именем данной переменной и значением, причем без пробела. Кроме того, с помощью знака доллара, поставленного перед именем имеющейся переменной, она ссылается на хранимое значение.
Переменная окружения — это переменная, которая автоматически создается и поддерживается компьютером. Она помогает системе определять, где устанавливать файлы, находить программы, а также проверять пользовательские и системные настройки. Кроме того, переменные окружения используются графическими программами и программами командной строки из любого места компьютера.
Часто задаваемые вопросы по установке разных версий Python в Anaconda
Вопрос: Как установить другую версию Python в Anaconda?
Ответ: Используйте менеджер окружений conda, создав новое окружение с нужной версией Python, например: conda create -n myenv python=3.9.
Вопрос: Можно ли установить Python 2.7 в Anaconda?
Ответ: Да, вы можете создать окружение с Python 2.7, но учтите, что эта версия устарела и не получает обновлений безопасности.
Вопрос: Как переключиться между версиями Python в Anaconda?
Ответ: Активируйте нужное окружение командой conda activate имя_окружения.
Вопрос: Что делать, если нужная версия Python недоступна в репозиториях conda?
Ответ: Попробуйте установить её через conda-forge: conda install -c conda-forge python=3.10.
Вопрос: Как удалить окружение с ненужной версией Python?
Ответ: Используйте команду conda remove —name имя_окружения —all.
Вопрос: Влияет ли установка другой версии Python на существующие проекты?
Ответ: Нет, если вы используете отдельные окружения, проекты останутся изолированными.
Вопрос: Как проверить, какая версия Python установлена в текущем окружении?
Ответ: Выполните команду python —version в активированном окружении.
Вопрос: Можно ли установить Python 3.12 в старую версию Anaconda?
Ответ: Да, обновите conda (conda update conda) и затем создайте окружение с Python 3.12.
Вопрос: Как установить несколько версий Python одновременно в Anaconda?
Ответ: Создайте несколько окружений, каждое со своей версией Python, и активируйте нужное по мере необходимости.
Вопрос: Что делать, если после установки новой версии Python не работают пакеты?
Ответ: Установите пакеты заново в новом окружении через conda install или pip install.





















