Как использовать Python Version Manager?
Управление несколькими версиями Python с помощью pyenv
Почему использовать pyenv
?
Почему не использовать системную версию Python?
Так почему бы не использовать его? Один из путей - это то, что этот Python действительно принадлежит операционной системе. В конце концов, он был установлен вместе с операционной системой. Это даже отражено при выполнении which
:
Здесь python
доступен для всех пользователей, как видно из его расположения /usr/bin/python
. Вероятно, это не та версия Python, которую вы хотите использовать:
Чтобы установить пакет в ваш системный Python, вам нужно выполнить sudo pip install
. Это потому, что вы устанавливаете пакет в системную версию Python, которая требует привилегий администратора. Но это может быть проблематично и неправильно для проектов, которые зависят от конкретной версии Python. Здесь на помощь приходит pyenv
.
Установка pyenv
Для установки pyenv
вам потребуются следующие компоненты:
- Зависимости для сборки
- Установщик
pyenv
Зависимости для сборки
Перед установкой pyenv
убедитесь, что у вас установлены следующие зависимости:
gcc
git
make
openssl-devel
bzip2-devel
libffi-devel
zlib-devel
uuid-devel
Можете установить их на Ubuntu с помощью следующей команды:
Использование установщика pyenv
Самый простой способ установить pyenv
- это использовать официальный установщик. Чтобы сделать это, выполните следующую команду:
После завершения установки добавьте следующие строки в ваш файл конфигурации оболочки (~/.bashrc
или ~/.zshrc
):
Сохраните изменения и перезагрузите вашу оболочку. После этого pyenv
будет готов к использованию.
Использование pyenv
для установки Python
Теперь, когда pyenv
установлен, вы можете использовать его для установки нескольких версий Python. Для этого выполните следующую команду:
Здесь <version>
- это желаемая версия Python, например, 3.9.6
.
Исследование команд pyenv
После установки Python с помощью pyenv
, вы можете использовать различные команды для управления установленными версиями. Вот некоторые из них:
pyenv versions
- отображает все установленные версии Python.pyenv which <version>
- отображает путь к исполняемому файлу указанной версии Python.pyenv global <version>
- устанавливает глобальную версию Python.pyenv local <version>
- устанавливает локальную версию Python для текущего каталога.pyenv shell <version>
- устанавливает временную версию Python для текущей оболочки.
Указание версии Python
Вы также можете указать версию Python для конкретного проекта или окружения с помощью файла .python-version
. Создайте этот файл в корневом каталоге проекта и напишите в нем желаемую версию Python, например:
Теперь каждый раз, когда вы переходите в эту директорию, pyenv
будет автоматически устанавливать и использовать указанную версию Python.
Виртуальные окружения и pyenv
pyenv
также поддерживает использование виртуальных окружений. Вы можете создавать виртуальные окружения с помощью команды:
Здесь <version>
- это версия Python, а <env_name>
- имя вашего виртуального окружения.
Вы можете активировать виртуальное окружение с помощью команды:
После активации виртуального окружения, все команды Python будут выполняться в контексте этого окружения.
Работа с несколькими окружениями
С помощью pyenv
вы можете легко работать с несколькими версиями Python и виртуальными окружениями одновременно. Вот некоторые полезные команды:
pyenv versions
- показывает все установленные версии Python и активное виртуальное окружение.pyenv global <version>
- устанавливает глобальную версию Python, которая будет использоваться по умолчанию.pyenv local <version>
- устанавливает локальную версию Python для текущего каталога.pyenv activate <env_name>
- активирует виртуальное окружение.pyenv deactivate
- деактивирует текущее виртуальное окружение.
Заключение
pyenv
- это отличный инструмент для управления несколькими версиями Python. Он позволяет устанавливать и использовать различные версии Python в зависимости от ваших потребностей. Теперь вы можете легко переключаться между версиями Python и использовать виртуальные окружения для разных проектов. Надеюсь, что этот материал поможет вам оптимизировать ваше время и избегать проблем с версиями Python при работе над проектами.