Последнее обновление: 16.12.2022
На одной рабочей машине одновременно может быть установлено несколько версий Python. Это бывает полезно, когда идет работа с некоторыми внешними библиотеками, которые поддерживают разные версии python, либо в силу каких-то
других причин нам надо использовать несколько разных версий. Например, на момент написания статьи последней и актуальной является версия Python 3.11.
Но, допустим, необходимо также установить версию 3.10, как в этом случае управлять отдельными версиями Python?
Windows
На странице загрузок https://www.python.org/downloads/ мы можем найти ссылку на нужную версию:
И также загрузить ее и установить:
Чтобы при использовании интерпретатора Python не прописывать к нему весь путь, добавим при установке его в переменные среды. Но здесь надо учитывать, что в переменных среды
может содержаться несколько путей к разным интерпретаторам Python:
Та версия Python, которая находится выше, будет версией по умолчанию. С помощью кнопки «Вверх» можно нужную нам версию переместить в начало, сделав версией по умолчанию.
Например, в моем случае это версия 3.11. Соответственно, если я введу в терминале команду
или
то консоль отобразит версию 3.11:
C:\python>python --version Python 3.11.0
Для обращения к версии 3.10 (и всем другим версиям) необходимо использовать указывать номер версии:
C:\python>py -3.10 --version Python 3.10.9
например, выполнение скрипта hello.py
с помощью версии 3.10:
Подобным образом можно вызывать и другие версии Python.
MacOS
На MacOS можно установить разные версии, например, загрузив с официального сайта пакет установщика для определенной версии.
Для обращения к определенной версии Python на MacOS указываем явным образом подверсию в формате python3.[номер_подверсии]
. Например, у меня установлена версия
Python 3.10. Проверим ее версию:
Аналогично обращении к версии python3.9
(при условии если она установлена)
К примеру выполнение скрипта hello.py
с помощью версии python 3.10:
Linux
На Linux также можно установить одновременно несколько версий Python. Например, установка версий 3.10 и 3.11:
sudo apt-get install python3.10 sudo apt-get install python3.11
Одна из версий является версий по умолчанию. И для обращения к ней достаточно прописать python3, например, проверим версию по умолчанию:
Для обращения к другим версиям надо указывать подверсию:
python3.10 --version python3.11 --version
Например, выполнение скрипта hello
с помощью версии Python 3.10:
Но может сложиться ситуация, когда нам надо изменить версию по умолчанию. В этом случае применяется команда update-alternatives для связывания
определенной версии Python с командой python3. Например, мы хотим установить в качестве версии по умолчанию Python 3.11. В этом случае последовательно выполним следующие команды:
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 2
Числа справа указывают на приоритет/состояние. Так, для версии 3.11 указан больший приоритет, поэтому при обращении к python3
будет использоваться именно версия 3.11 (в моем случае это Python 3.11.0rc1)
С помощью команды
sudo update-alternatives --config python3
можно изменить версию по умолчанию
By Dalya Gartzman
You are here because:
- You are using Windows OS version 10+
- You would like to use multiple Python versions on the same computer
- You are tired of the internet telling you to “Just Use Virtualenv”
TL;DR
- Open
Command Prompt
and enterpip install virtualenv
- Download the desired
python
version (do NOT add to PATH!), and remember thepath\to\new_python.exe
of the newly installed version - To create a virtualenv, open
Command Prompt
and entervirtualenv \path\to\env -p path\to\new_python.exe
- If you are using
PyCharm
, update theProject Interpreter
and theCode compatibility inspection
. - To install packages:
(I) Activate virtualenv: openCommand Prompt
and enterpath\to\env\Scripts\activate.bat
(II) Install desired packages
(III) Deactivate withdeactivate
.
The Long version; Do Read
Prologue
If you are using the Anaconda App this process might be easier using their GUI. I haven’t tried it myself, please let me know how it went if you are going down that road
1. Install virtualenv
If you already have some virtual environments, or are using Anaconda, make sure the next steps are performed from outside all these environments.
2. Install Python
You can download python from the official site, for example for python3.7.3
go here.
The file you should be downloading is called Windows x86–64 executable installer
, or Windows x86 executable installer
if for some reason you are using a 32-bit windows.
Once downloading is finished, open the executable file and an installation prompt will appear.
- You do NOT want to add the new python to your PATH since we are going to have multiple python versions on the same computer, and we would like for each application to know only one python version.
- Either use the default suggested location for the new python, or supply a location of your choice. Either way, remember this location and let’s denote it from now on with
C:\<some_path>\Python37
.
3. Create a virtualenv
Open the Command Prompt
, or if you are using Anaconda open the Anaconda Prompt
.
Decide where you want your virtualenv to be, for example,C:\Users\<your_username>\Anaconda3\envs\<env_name>
.
Enter:
virtualenv C:\Users\<your_username>\Anaconda3\envs\<env_name> -p C:\<some_path>\Python37\python.exe
4. Update PyCharm Interpreter
If you are using PyCharm, open the project you would like to work on (that is/will be written with the new python version), and go to File -> Settings -> Project -> Project Interpreter
press the gear icon and then Add..
.
This will open a prompt window that allows you to define a new interpreter:
Assuming you are using Code Inspections, you might need to tell PyCharm which python version to inspect for. Go to File -> Settings-> Editor -> Inspections -> Python -> Code compatibility Inspection
, make sure the box on the top indicates the specific project you are working on, and tick the box of your python version.
If you don’t see your python version on the Options list, this might also be the time to update PyCharm… yup, happened to me too…
5. Install packages
Currently, your virtualenv
contains only the crucial packages, pip
and setuptools
. To install more packages:
- Open
Command Prompt
orAnaconda Prompt
, and activate your virtualenv by enteringC:\Users\<your_username>\Anaconda3\envs\<env_name>\activate.bat
- Use
pip
to install packages like you usually do. - Deactivate your virtualenv by entering
deactivate
.
Epilogue
This morning, when I decided to open a new project with a different python version, I thought, “Yeah, I’ll just use a virtualenv”, because the internet said I can “Just do it”.
Well, it’s working now, so no hard feelings dear internet, but seriously, was the “Just” really justified? Does reinstalling-PyCharm-only-because-I-want-to-have-proper-code-inspections fall under the “Just” category??
Anyway, along the way I stumbled upon several helpful guides, but each one took me “just” one step of the way, so I decided to put it all in one place.
I hope my journey helped you with yours, and may we all enjoy happy coding, with as little as IT-friction as possible
Learn to code for free. freeCodeCamp’s open source curriculum has helped more than 40,000 people get jobs as developers. Get started
Иногда полезно держать несколько версий python на одной машине. Допустим для разработки двух проектов нам необходима вторая и третья ветка python. Или вы поддерживаете проект который использует старую версию python.
Обычно для этого мы используем виртуальное окружение virtualenv или же обертку для него virtualenvwrapper. Об этом я рассказывать не буду, так как есть уже много подобных статей, да и в документациях к самим утилитам все очень хорошо объяснено. Достаточно только забить virtualenv или virtualenvwrapper в поисковик.
Но в дополнение к ним я хочу рассказать в этой статье про менеджер версий python. Кому любопытно прошу под кат.
Чтобы использовать несколько версий python, можно установить их вручную или воспользоваться менеджер версий. Таких есть два: pythonbrew(который более не развивается) и pyenv. Оба менеджера не поддерживают windows(pythonbrew, pyenv) так что питонистам пишущим на этой платформе, придется пока разруливать все руками, либо сделать свою утилиту для смены путей до нужных версий. Кто как справляется с данной ситуацией можете оставлять в комментариях.
Так как pythonbrew более не поддерживается в этой статье он рассмотрен не будет.
P.S. В статье приведены примеры проверенные для OS Ubuntu 12.04. При попытке повторить их, делайте поправки относительно своего дистрибутива.
Ручной способ
Для того чтобы работать с несколькими версиями питона, можно установить необходимые версии в указанный префикс. Например чтобы не мудрить с правами, установим дополнительно 2 версии python(2.7.6 и 3.3.2) в директорию пользователю:
2.7.6
$ mkdir -p ~/python/src/ && cd ~/python/src/
$ wget http://www.python.org/ftp/python/2.7.6/Python-2.7.6.tar.xz
$ tar -xf ~/python/src/Python-2.7.6.tar.xz && cd ./Python-2.7.6
$ ./configure --prefix=$HOME/python/2.7.6/
$ make && make install
для 3.3.2 делаем аналогичные операции:
$ wget http://www.python.org/ftp/python/3.3.2/Python-3.3.2.tar.xz ~/python/src/
$ tar -xf ~/python/src/Python-3.3.2.tar.xz && cd ./Python-3.3.2
$ ./configure --prefix=$HOME/python/3.3.2/
$ make && make install
Теперь можно создать виртуальное окружение чтобы использовать эти версии:
$ virtualenv -p ~/python/2.7.6/bin/python env && . ./env/bin/activate
или через virtualenvwrapper:
$ mkvirtualenv -p ~/python/2.7.6/bin/python evnwrapper
Собственно на основании такого способа описана статья по созданию мультихостинга.
Далее если вам необходимо использовать какую-то из этих версий как python по умолчанию, то вам необходимо добавить в переменную окружения путь до интерпретатора python.
$ echo 'export PATH=~/python/2.7.6/bin/' >> ~/.bashrc
Соответственно вместо bashrc вы ставите bash_profile, zshrc, kshrc, profile в зависимости от вашей командной оболочки.
$ . ~/.bashrc
И по необходимости можно установить pip, предварительно установив setuptools.
$ wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py -O - | python
$ wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py -O - | python
Фух, ну вроде бы все. А теперь о том как можно сделать это проще использую менеджер версий python.
PyEnv
В общем если вы достаточно ленивы, то можно не делать всего того что описано выше а воспользоваться утилитой pyenv, которая упростит вам данное взаимодействие с окружением и путями.
Так в чем же заключается особенность этой утилиты? Вот что она может со слов автора проекта:
- Let you change the global Python version on a per-user basis.
- Provide support for per-project Python versions.
- Allow you to override the Python version with an environment variable.
- Search commands from multiple versions of Python at a time. This may be helpful to test across Python versions with tox.
По умолчанию все версии Python будут доступны в ~/.pyenv/versions/
. Изменять версии Python можно как в глобальном контексте так и в локальном(например под конкретный проект).
Как ставить pyenv хорошо описывается в инструкции. Так же у автора есть скрипт который по мимо самой pyenv ставит еще и дополнительные плагины, в том числе и для virtualenv. Есть возможность установить плагин и для virtualenvwrapper.
Перед установкой необходимо поставить некоторые зависимости:
# apt-get install make libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev
Прежде чем начать установку, убедитесь, что у вас установлен git:
# apt-get install git
Далее устанавливаем по инструкции:
$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv
Или так:
$ curl https://raw.github.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
Во втором случае установка произойдет с дополнительными плагинами.
Далее, для того чтобы все заработало, дополним наш bashrc и перезагрузим оболочку:
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc
$ . ~/.bashrc
Для обновления утилиты или смены ее версии используем git.
Инструкция
Для управления версиями pyenv необходимо перейти в директорию с утилитой:
$ cd ~/.pyenv
Для просмотра доступных версий:
$ git tag
для смены версии
$ git checkout <version>
для обновления
$ git pull
Пример использования
~ $ pyenv install 2.7.5
~ $ pyenv install 3.3.2
~ $ pyenv rehash
~ $ pyenv versions
* system
2.7.5
3.3.2
~ $ pyenv global 2.7.5
~ $ python --version
Python 2.7.5
~ $ cd projects/
~/projects $ pyenv local 3.3.2
~/projects $ python --version
Python 3.3.2
~/projects $ cd test_prj/
~/projects/test_prj $ python --version
Python 3.3.2
~/projects/test_prj $ cd ..
~/projects $ pyenv local --unset
~/projects $ python --version
Python 2.7.5
В добавок ко всему все довольно подробно и детально расписано у автора проекта в его репозиториях на github.
Виртуальное окружение
Все, а дальше как хотите. Если вы используете 3 ветку python то для создания виртуального окружения можно воспользоваться утилитой venv которая работает из коробки. Про это есть статья на хабре. Если вы больше привыкли к virtualenv или ее обертке virtualenvwrapper то тут есть два варианта: либо поставить плагин к pyenv, или использовать их к той версии python c которой вы работаете. Соответственно если выбрать первый вариант, то созданные вами окружения будут добавлены к вашим версиям python и доступны через команду:
$ pyenv versions
Добавить плагин легко, просто клонируем его из репозитория pyenv-virtualenv или pyenv-virtualenvwrapper:
$ mkdir -p ~/.pyenv/plugins
$ git clone git://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
$ git clone git://github.com/yyuu/pyenv-virtualenvwrapper.git ~/.pyenv/plugins/pyenv-virtualenvwrapper
Пример использования можно посмотреть в документации для pyenv-virtualenv и pyenv-virtualenvwrapper.
Все, а дальше пользуйтесь, как вам привычнее.
Пример использования
$ pyenv versions
* system
2.7.5
3.3.2
$ mkdir -p ~/test_project/prj_for_2.7.5 && cd ~/test_project/prj_for_2.7.5
$ pyenv virtualenv 2.7.5 my-virtualenv-2.7.5
$ pyenv local my-virtualenv-2.7.5
$ pip install django==1.4
$ pip freeze
Django==1.4
wsgiref==0.1.2
$ python --version
Python 2.7.5
$ mkdir -p ~/test_project/test_project && cd ~/test_project/test_project
$ pyenv virtualenv 3.3.2 my-virtualenv-3.3.2
$ pyenv local my-virtualenv-3.3.2
$ pip install django==1.5
$ pip freeze
Django==1.5
$ python --version
Python 3.3.2
Теперь находясь в директории проекта можно запускать скрипт от нужной версии python не прилагая никаких действий. pyenv создает в директории файл .python-version который содержит в себе информацию о том какую версию python с каким окружение использовать для данного проекта.
Полезные ссылки
github.com/utahta/pythonbrew
github.com/yyuu/pyenv
github.com/yyuu/pyenv-installer
github.com/yyuu/pyenv-virtualenv
github.com/yyuu/pyenv-virtualenvwrapper
docs.python.org/dev/library/venv.html
www.virtualenv.org/en/latest
virtualenvwrapper.readthedocs.org/en/latest
Пройдите тест, узнайте какой профессии подходите
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы
Введение в pyenv: что это и зачем нужно
Pyenv — это мощный инструмент для управления версиями Python, который позволяет легко устанавливать и переключаться между различными версиями Python. Это особенно полезно, если вы работаете над несколькими проектами, каждый из которых требует своей версии Python. Pyenv помогает избежать конфликтов версий и обеспечивает гибкость в управлении окружениями. Например, один проект может требовать Python 2.7, в то время как другой проект требует Python 3.9. С pyenv вы можете легко переключаться между этими версиями без необходимости переустановки Python.
Pyenv также полезен для тестирования кода на разных версиях Python. Это может быть особенно важно, если вы разрабатываете библиотеки или приложения, которые должны поддерживать несколько версий Python. С pyenv вы можете быстро переключаться между версиями и проверять, как ваш код работает в каждой из них. Это помогает обнаруживать и исправлять ошибки, связанные с несовместимостью версий.

Установка pyenv на вашу систему
Установка на macOS
-
Убедитесь, что у вас установлен Homebrew. Homebrew — это менеджер пакетов для macOS, который облегчает установку различных программ и библиотек. Если у вас его нет, установите его командой:
-
Установите pyenv с помощью Homebrew. Homebrew автоматически установит все необходимые зависимости:
-
Добавьте pyenv в ваш профиль оболочки (например,
.bashrc
или.zshrc
). Это необходимо для того, чтобы pyenv был доступен в вашем терминале: -
Перезапустите терминал или выполните команду
source
, чтобы применить изменения:
Установка на Ubuntu
-
Установите зависимости. Pyenv требует наличия ряда библиотек и инструментов для компиляции и работы с различными версиями Python. Установите их командой:
-
Установите pyenv. Pyenv можно установить с помощью команды curl, которая загрузит и установит pyenv:
-
Добавьте pyenv в ваш профиль оболочки (например,
.bashrc
). Это необходимо для того, чтобы pyenv был доступен в вашем терминале: -
Перезапустите терминал или выполните команду
source
, чтобы применить изменения:
Основные команды pyenv для управления версиями Python
Проверка установленных версий
Чтобы увидеть список всех установленных версий Python, используйте команду:
Эта команда покажет все версии Python, которые были установлены с помощью pyenv. Вы также увидите, какая версия Python активна в данный момент.
Установка новой версии Python
Для установки новой версии Python используйте команду:
Например, чтобы установить Python 3.9.1, выполните:
Pyenv автоматически загрузит исходный код Python, скомпилирует его и установит на вашу систему. Это может занять некоторое время, особенно если вы устанавливаете старые версии Python, которые требуют дополнительных патчей.
Удаление версии Python
Чтобы удалить установленную версию Python, используйте команду:
Например, чтобы удалить Python 3.9.1, выполните:
Эта команда удалит все файлы, связанные с указанной версией Python, освобождая место на вашем диске.
Установка и переключение между версиями Python
Установка версии по умолчанию
Чтобы установить версию Python по умолчанию для всей системы, используйте команду:
Например, чтобы установить Python 3.9.1 по умолчанию, выполните:
Эта команда установит указанную версию Python в качестве глобальной, что означает, что она будет использоваться по умолчанию для всех проектов и скриптов.
Локальная установка версии
Вы можете установить версию Python для конкретного проекта, находясь в корневой папке проекта:
Например, чтобы установить Python 3.8.6 для текущего проекта, выполните:
Эта команда создаст файл .python-version
в корневой папке проекта, который будет содержать указанную версию Python. Pyenv будет автоматически переключаться на эту версию, когда вы будете находиться в этой папке.
Переключение между версиями
Чтобы переключиться на другую версию Python, просто используйте команду pyenv global
или pyenv local
с нужной версией. Например:
Эта команда изменит глобальную версию Python на указанную. Вы также можете использовать команду pyenv local
, чтобы изменить версию Python для конкретного проекта.
Решение распространенных проблем и советы по использованию pyenv
Проблемы с зависимостями
Иногда установка новой версии Python может завершиться с ошибками из-за отсутствия необходимых зависимостей. Убедитесь, что все зависимости установлены, особенно на системах Linux. Например, на Ubuntu вы можете использовать команду sudo apt install
, чтобы установить недостающие библиотеки.
Управление плагинами
Pyenv поддерживает плагины, которые могут расширить его функциональность. Например, pyenv-virtualenv
позволяет управлять виртуальными окружениями. Установите его командой:
И добавьте в профиль оболочки:
Это позволит вам создавать и управлять виртуальными окружениями прямо из pyenv, что делает управление зависимостями еще более удобным.
Советы по использованию
- Регулярно обновляйте pyenv: Используйте команду
pyenv update
, чтобы всегда иметь последние версии. Это поможет избежать проблем с совместимостью и обеспечит доступ к новым функциям. - Создавайте виртуальные окружения: Используйте
pyenv virtualenv
для создания изолированных окружений для каждого проекта. Это поможет избежать конфликтов зависимостей между проектами. - Проверяйте совместимость: Убедитесь, что используемые библиотеки совместимы с выбранной версией Python. Это поможет избежать проблем с выполнением кода и установкой зависимостей.
- Используйте pyenv для тестирования: Если вы разрабатываете библиотеки или приложения, которые должны поддерживать несколько версий Python, используйте pyenv для тестирования кода на разных версиях. Это поможет обнаруживать и исправлять ошибки, связанные с несовместимостью версий.
- Документируйте используемые версии: Включайте информацию о версиях Python и зависимостях в документацию ваших проектов. Это поможет другим разработчикам быстро настроить окружение и избежать проблем с совместимостью.
Теперь вы готовы использовать pyenv для управления версиями Python и улучшить ваш рабочий процесс! 🚀
Читайте также
DzenIT
HOME
ZEN
IT
SOFT
APK
LIVE
GAME
OTHER
W
SEARCH
Up
1. Скачать Python
Выберите нужную версию на официальном сайте.
2. Установка
Запустите установщик, снимите галочку Add Python to PATH
(если нужно избежать конфликтов).
3. Проверка версий
py -0 # список установленных версий и текущей по умолчанию
py -3.12
4. Создание виртуального окружения
py -3.12 -m venv venv
venv\Scripts\activate
5. Проверка версии Python
python -V # текущая версия в окружении
deactivate