Смена версии Python на компьютере

Как поменять версию python

Как поменять версию python

Проверка текущей версии Python на Windows, macOS и Linux

Проверка текущей версии Python на Windows, macOS и Linux

На Windows откройте Командную строку (cmd) или PowerShell и введите:

python --version или python -V

На macOS используйте Terminal. Выполните:

python3 --version

По умолчанию в системе может присутствовать устаревший Python 2, поэтому именно python3 отражает рабочую версию для разработки.

На Linux также проверьте через терминал:

python3 --version

На некоторых дистрибутивах команда python всё ещё указывает на Python 2. Для уточнения привязки используйте:

which python3

или

ls -l /usr/bin/python*

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

Установка новой версии Python рядом с существующей

На Windows установщик Python по умолчанию не удаляет предыдущую версию. При установке новой версии снимите галочку “Add Python to PATH”, если хотите сохранить старую версию в качестве основной. Для параллельного использования укажите отдельный каталог, например C:\Python312, и добавьте его вручную в переменную PATH при необходимости.

В Linux можно установить несколько версий через пакетный менеджер. Например, в Ubuntu команда sudo apt install python3.12 установит Python 3.12 наряду с системным python3. Версии переключаются с помощью update-alternatives: sudo update-alternatives —install /usr/bin/python3 python3 /usr/bin/python3.12 2. Для выбора используйте sudo update-alternatives —config python3.

В macOS удобно применять Homebrew: brew install python@3.12. Старая версия останется в системе, а переключение выполняется через brew link —overwrite python@3.12. Чтобы не затрагивать глобальные пути, используйте pyenv, позволяющий держать несколько версий и задавать локальную для конкретного проекта.

Настройка переменных окружения для переключения версий

Переключение между установленными версиями Python осуществляется через изменение переменной окружения PATH и, при необходимости, переменной PY_PYTHON в Windows.

Windows:

  1. Откройте «Переменные среды» через Система → Дополнительные параметры системы → Переменные среды.
  2. В системной переменной Path переместите путь к нужной версии Python выше остальных. Пример:
    • C:\Python311\
    • C:\Python310\
  3. Для использования py-лаунчера установите переменную PY_PYTHON. Например:
    • PY_PYTHON=3.11 – запуск по умолчанию Python 3.11.

Linux/macOS:

  1. Определите расположение версий через which python3.10, which python3.11.
  2. В файле ~/.bashrc или ~/.zshrc настройте алиасы:
    • alias python=python3.11
    • alias python310=/usr/bin/python3.10
  3. Для гибкого управления используйте update-alternatives (Debian/Ubuntu):
    • sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.10 1
    • sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.11 2
    • sudo update-alternatives --config python – выбор активной версии.

Использование pyenv для управления несколькими версиями Python

pyenv устанавливается через пакетные менеджеры: в Linux чаще всего используется apt или Homebrew в macOS. После установки добавьте строки инициализации в .bashrc или .zshrc, чтобы команда стала доступна во всех сессиях терминала.

Для загрузки конкретной версии Python применяйте pyenv install 3.12.2. Список доступных вариантов можно получить через pyenv install -l, что позволяет контролировать переход даже к промежуточным патчам.

Переключение глобальной версии выполняется командой pyenv global 3.11.6. Она определяет интерпретатор по умолчанию для всей системы пользователя. Если нужно использовать другую версию в пределах проекта, достаточно вызвать pyenv local 3.10.13 в рабочем каталоге, при этом создаётся файл .python-version.

Для временной смены без изменения конфигурации применяйте pyenv shell 3.9.18, что удобно при тестировании совместимости.

Рекомендуется дополнительно подключить плагин pyenv-virtualenv, чтобы привязывать виртуальные окружения к разным версиям Python и исключать конфликты зависимостей.

Перед установкой новых интерпретаторов убедитесь, что установлены системные зависимости: в Ubuntu это пакеты build-essential, libssl-dev, zlib1g-dev, libsqlite3-dev. Без них компиляция может завершиться ошибкой.

Обновление pip и библиотек после смены версии Python

После установки новой версии Python предыдущий pip может быть недоступен или связан со старым интерпретатором. Для корректной работы необходимо вручную обновить pip и перенести используемые пакеты.

Сначала убедитесь, что запускается именно нужный pip:

python -m pip --version

Если pip отсутствует, установите его заново:

python -m ensurepip --upgrade

Затем обновите сам pip:

python -m pip install --upgrade pip

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

pip freeze > requirements.txt

И установить их в новой:

python -m pip install --upgrade -r requirements.txt

Полезные команды после смены версии:

Задача Команда
Проверка текущего интерпретатора python --version
Проверка версии pip python -m pip --version
Установка недостающих библиотек python -m pip install имя_пакета
Обновление всех пакетов по списку python -m pip install --upgrade -r requirements.txt

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

Проверка совместимости проектов с новой версией Python

Проверка совместимости проектов с новой версией Python

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

Для выявления проблем совместимости применяют инструмент tox, позволяющий запускать тесты проекта под разными версиями Python. Это позволяет заранее определить, где код ломается.

Анализ устаревших синтаксических конструкций удобен с помощью pylint и flake8 с актуальными плагинами. Они подсветят несовместимые вызовы стандартной библиотеки и использование удалённых функций.

Рекомендуется запустить все юнит-тесты под новой версией через pytest или встроенный unittest. Если тестов нет, стоит хотя бы создать минимальный набор для ключевых модулей.

Особое внимание стоит уделить проектам с бинарными зависимостями (например, numpy, pandas, scipy). Их нужно обновить до последних совместимых сборок и проверить работоспособность критичных функций.

Вопрос-ответ:

Почему после установки новой версии Python команды в терминале всё равно запускают старую?

Чаще всего причина в переменной PATH. В системе может быть прописан путь к старому интерпретатору, и он запускается первым. Чтобы исправить ситуацию, нужно изменить порядок путей: в Windows — через «Переменные среды», в Linux и macOS — отредактировать файл `.bashrc` или `.zshrc`, добавив правильный путь. Также стоит проверить наличие алиасов, которые могут указывать на старую версию.

Можно ли использовать разные версии Python для разных проектов без постоянного переключения?

Да, для этого применяют виртуальные окружения. Например, с помощью `venv` или `virtualenv` можно создать отдельное окружение для каждого проекта и привязать его к нужной версии Python. Если требуется ещё больше гибкости, удобно использовать pyenv: он позволяет держать в системе несколько версий и назначать их как для всего пользователя, так и для конкретной папки с проектом.

Как обновить Python на Windows, чтобы не повредить существующие настройки?

На Windows достаточно скачать новый установщик с официального сайта Python.org. При установке рекомендуется выбрать вариант «Add Python to PATH», чтобы система сразу знала, где лежит новый интерпретатор. При этом старую версию можно оставить или удалить позже вручную. Библиотеки, установленные через `pip`, для новой версии придётся ставить заново, поэтому часто используют отдельные виртуальные окружения для проектов.

Если установить новую версию Python, будут ли старые скрипты работать?

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

Есть ли способ быстро переключаться между Python 3.10 и 3.11?

Да, такой способ есть. На Linux и macOS обычно используют pyenv — с его помощью можно задать конкретную версию для проекта или терминала. На Windows тоже доступен pyenv-win, но часто проще пользоваться утилитой `py`, которая устанавливается вместе с Python. Например, команда `py -3.10` запустит версию 3.10, а `py -3.11` — версию 3.11. Это позволяет не менять глобальные настройки и держать под рукой несколько интерпретаторов.

Ссылка на основную публикацию