Pyenv: Как управлять версиями Python без головной боли

25 Jun, 2026
44,915
🔱 3,252
👥 387

Pyenv logo

Знакомая ситуация: вам нужно запустить старый проект, но он работает только на Python 3.6, а на вашей машине уже стоит 3.10. Или наоборот — нужно протестировать код на свежей версии, не трогая основную систему. Именно для таких случаев создан pyenv — простой и элегантный инструмент управления версиями Python.

Что может pyenv?

Pyenv решает три основные проблемы разработчиков:

  1. Параллельная работа с разными версиями Python — можно установить хоть 10 версий и переключаться между ними одной командой
  2. Изоляция проектов — каждый проект может использовать свою версию, прописанную в .python-version файле
  3. Простота установки — не нужно править системные настройки или переустанавливать Python

Как это работает?

Pyenv использует хитрую систему "шимов" (shims) — легковесных прокси-скриптов, которые:

  • Встают первыми в вашем PATH
  • Определяют, какая версия Python нужна (по файлу проекта или глобальной настройке)
  • Перенаправляют вызов на нужную установленную версию

Главные команды, которые стоит запомнить

# Установка новой версии Python
pyenv install 3.10.4

# Переключение версии для текущего проекта
pyenv local 3.10.4

# Глобальное переключение версии
pyenv global 3.10.4

# Показать все установленные версии
pyenv versions

Чем pyenv лучше альтернатив?

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

Реклама
  • Не зависит от самого Python (написан на чистом shell)
  • Не нужно подгружать в shell (работает через модификацию PATH)
  • Делает ровно одну вещь и делает это хорошо (UNIX-way)

Из личного опыта

Когда я впервые установил pyenv, он спас меня при тестировании библиотеки на совместимость с Python 3.7-3.10. Вместо танцев с виртуальными окружениями и переустановками, всё свелось к:

for ver in 3.7 3.8 3.9 3.10; do
  pyenv local $ver
  pytest
end

Когда особенно пригодится?

  1. Разработчикам библиотек — тестирование на разных версиях Python
  2. Системным администраторам — поддержка legacy-кода
  3. Участникам open-source проектов — когда нужно быстро переключаться между требованиями
  4. Преподавателям — демонстрация различий между версиями

Установка за 60 секунд

Для Linux/macOS:

curl -fsSL https://pyenv.run | bash

Или через Homebrew:

brew update
brew install pyenv

После установки не забудьте добавить инициализацию в shell-конфиг (для bash/zsh):

echo 'eval "$(pyenv init -)"' >> ~/.bashrc

Pyenv — must-have инструмент в арсенале Python-разработчика. Простой, предсказуемый и решающий конкретную проблему. Если вы ещё не используете pyenv, самое время попробовать — это сэкономит вам часы нервотрёпки с версиями Python.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.