pyenv позволяет легко переключаться между несколькими версиями Python. Он простой, ненавязчивый и следует традиции UNIX одноцелевых инструментов, которые хорошо справляются с одной задачей.
Возможности pyenv:
- Позволит вам изменить глобальную версию Python для каждого пользователя.
- Обеспечит поддержку версий Python для каждого проекта.
- Позволит вам переопределить версию Python с помощью переменной среды.
- Может искать команды одновременно в нескольких версиях Python. Это может быть полезно для тестирования версий Python с помощью tox.
В отличие от pythonbrew и pythonz, pyenv не:
- Зависит от самого Python. pyenv был создан из чистых скриптах Bash. У Python нет проблем с начальной загрузкой.
- Нуждается в загрузке в вашу оболочку. Вместо этого pyenv работает путём добавления каталога в ваш $PATH.
- Управляет virtualenv. Конечно, вы можете создать virtualenv самостоятельно или с pyenv-virtualenv для автоматизации процесса.
На высоком уровне pyenv перехватывает команды Python с помощью исполняемых файлов оболочки, вставленных в ваш $PATH, определяет, какая версия Python указана вашим приложением, и передаёт ваши команды в правильную установку Python.
Как установить pyenv в Debian, Ubuntu, Linux Mint, Kali Linux и их производные
Всё ещё существует довольно много востребованных инструментов, которые не были перенесены с Python 2 на Python 3, что вызывает проблемы при их использовании. Эта страница расскажет, как безопасно использовать устаревшую версию.
Python 2 больше не поддерживается в репозиториях Debian. Это означает, что мы должны найти способ обойти эту проблему. pyenv решает эту проблему, позволяя нам устанавливать несколько версий Python, которые не конфликтуют друг с другом. В настоящее время его нет в репозиториях Debian или Kali, поэтому нам нужно будет установить его из исходников. К счастью, есть удобный скрипт установки, выпущенный авторами. Давайте вместе пройдём установку и настройку.
Начнём с установки зависимостей:
sudo apt install -y build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python3-openssl git
Далее мы просто запустим скрипт установки, написанный на bash. Если ZSH является оболочкой по умолчанию, после этого нам придётся отредактировать файл .zshrc.
curl https://pyenv.run | bash
Если мы используем ZSH, то теперь мы добавим соответствующие строки в наш .zshrc.
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.zshrc
Продолжим настройку:
exec $SHELL pyenv
Использование версий Python 2 в Debian, Ubuntu, Linux Mint, Kali Linux и их производных
Теперь мы можем установить Python 2 и сделать его нашей версией Python по умолчанию в pyenv:
pyenv install 2.7.18 pyenv global 2.7.18 pyenv versions python
Теперь мы можем устанавливать зависимости по мере необходимости для любых инструментов, которые мы используем. Когда мы хотим вернуться к Python 3, нам просто нужно установить значение global на system.
pyenv global system python -V
Следует иметь в виду, что нужно устанавливать зависимости через pip. apt будет не очень любезен, если вы пытаетесь установить зависимости Python 2 через него и через pip, поэтому в этом случае просто придерживайтесь pip.
Связанные статьи:
- Переход на Python 3 в Debian и Kali Linux (100%)
- Как настроить Python в качестве CGI модуля в Apache на Debian (Ubuntu, Linux Mint) (54.1%)
- Как установить pip в Kali Linux (52.8%)
- Решение проблемы со сломавшимся после обновления пакетов Pip (50%)
- Решение проблемы с ошибкой fatal error: libxml/xmlversion.h: Нет такого файла или каталога (50%)
- Не удалось получить некоторые архивы; возможно, нужно запустить apt-get update или попытаться повторить запуск с ключом --fix-missing (РЕШЕНО) (RANDOM - 4.1%)