Последнее обновление: 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
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
Иногда полезно держать несколько версий 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
Пройдите тест, узнайте какой профессии подходите
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы
Быстрый ответ
Устанавливайте каждую версию Python с официального сайта, при этом избегайте добавления их в PATH, чтобы не создавать конфликтов. Используйте запускатор py
для выбора необходимой версии:
Добавьте шебанг в ваши Python-файлы, который указывает на желаемую версию:
Создавайте виртуальные окружения для каждого проекта с целью контроля версий Python:
Для переключения между версиями используйте инструмент pyenv-win
, либо вручную обновите переменную PATH в командной строке.

Дорога к успеху через PATH
Рассматривайте переменную окружения PATH как компас в мире множественных версий Python. Избегайте глобальных изменений, устанавливая PATH локально в каждом окне консоли для соответствующей версии:
Создавайте batch-файлы для автоматизации настройки окружения –- они будут служить вашими настольными помощниками. Пример такого файла (setpython38.bat
):
Прибегаем к инкапсуляции: Виртуальная среда
Используйте Virtualenv для контроля зависимостей вашего проекта. Он создает изолированные среды, которые вы можете включать и выключать по своему усмотрению:
После активации вы автоматически переключаетесь на необходимую версию Python:
Либо вернитесь к глобальной версии при помощи команды deactivate
.
Получите индивидуальный опыт с Python
Настройте переменную PATHEXT, чтобы запускать Python-скрипты без указания расширения .exe:
Запускатор ‘py’ дает возможность выполнить скрипт с версией Python, указанной в строке шебанга:
Также можно использовать символические ссылки для удобного доступа к различным версиям Python:
Визуализация
Воспринимайте использование разных версий Python подобно мастерской с инструментами в операционной системе Windows:
Каждый «инструмент» имеет свое назначение:
Переключение между ними простое и незаметное.
Запускатор ‘py’ – надежный помощник
Запускатор ‘py’ в Windows, описанный в PEP 397, поможет вам управлять версиями Python. Вы можете выбрать нужную версию при помощи опции командной строки:
PEP 397 позволит вам изучить управление версиями Python в Windows.
Конфигурации проекта согласно спецификациям
Используйте .bat или .cmd файлы для настройки окружения каждого проекта, что позволит избегать глобальной настройки:
Двойной клик на batch-файл автоматически запустит ваш скрипт в необходимом окружении.
Полезные материалы
- Использование Python на Windows — Документация Python – руководство по установке и настройке.
- Управление Python с помощью Conda — альтернативный метод для управления Python-окружениями.
- Релизы Python для Windows — прямая ссылка на загрузку версий Python.
- Pyenv для Windows на GitHub — смените версии Python как ветер.
- Строитель виртуальных сред Python — ваш собственный помощник в управлении проектами.
- Документация Tox — инструмент для тестирования Python в различных окружениях.
- Добавление путей в Windows – Stack Overflow — искусство конфигурации PYTHONPATH превращает обычного пользователя в специалиста.