Если вы изучаете проекты и пакеты на основе Python вы можете оказаться в ситуации, когда вам понадобится другая версия Python. Я столкнулся с такой ситуацией, когда пытался установить библиотеку PyCoral, которая работает только с Python версий 3.6-3.9, а в моей системе был Python 3.11.
Хорошо то, что вам не нужно устанавливать существующую версию Python, предоставляемую вашим дистрибутивом, и установить новую.
Вы можете установить несколько версий Python благодаря инструменту под названием Pyenv . В этом руководстве я покажу вам, как установить и использовать этот инструмент, чтобы получить несколько версий Python одновременно на ваших дистрибутивах Ubuntu и Debian
Установка pyenv на Ubuntu
Поскольку pyenv собирает Python из исходников, для использования pyenv вам потребуется установить зависимости для сборки.
В дистрибутивах на базе Ubuntu и Debian вы можете использовать эту команду для получения всех необходимых пакетов.
sudo apt install -y make 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
Некоторые из вышеупомянутых пакетов могут быть уже установлены.
После установки зависимостей вы можете установить pyenv с помощью официального скрипта:
curl https://pyenv.run | bash
Он загрузит скрипт и запустит его.
После завершения сценария он должен выдать вам инструкции по автоматической загрузке pyenv. Этот вывод зависит от используемой вами оболочки. Для меня в bash он показал:
Load pyenv automatically by appending the following to ~/.bash_profile if it exists, otherwise ~/.profile (for login shells) and ~/.bashrc (for interactive shells) : export PYENV_ROOT="$HOME/.pyenv" [[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)"
Поэтому я отредактировал файл ~/.bashrc
и поместил упомянутый код в его конец.
После этого либо перезагрузите оболочку командой ниже, либо просто перезапустите терминал:
exec "$SHELL"
Давайте убедимся, что pyenv установлен в вашей системе, проверив версию pyenv:
pyenv --version
Если вы видите число, а не ошибку, значит, pyenv установлен на вашем Ubuntu Linux. Пришло время посмотреть, как его использовать.
Установка различных версий Python с помощью pyenv
С помощью этой команды вы можете перечислить различные установки Python и виртуальные среды, предлагаемые pyenv:
pyenv --list
Однако она выдаст огромный результат со всеми предложениями, которые могут быть вам неинтересны.
Если вас интересуют различные версии Python3, воспользуйтесь магией regex и grep. Допустим, вас интересуют версии Python с 3.6 по 3.9. Для этого используйте:
pyenv install --list | grep " 3\.[6789]"
Это все еще будет большой список, но не такой огромный, как тот, который вы видели раньше.
Я делаю это, чтобы попробовать проекты Coral, использующие библиотеки PyCoral, а они работают только с Python от 3.6 до Python 3.9. Если я посмотрю на статус версий Python, то 3.9 кажется хорошей версией для перехода. Я перейду на версию 3.9.19:
pyenv install -v 3.9.19
Поскольку Python собирается из исходников, это может занять некоторое время, и результат будет огромным. Просто убедитесь, что это не приведет к ошибкам.
Расположение версии Python
Различные версии Python, которые вы устанавливаете с помощью pyenv, находятся в каталоге ~/.pyenv/versions/
.
abhishek@raspberrypi:~ $ ls ~/.pyenv/versions/ 3.9.19
Список установленных версий Python
Вы можете посмотреть, какие дополнительные версии Python установлены:
pyenv versions
Это должно показать системную версию (версию Python, установленную в вашем дистрибутиве) и дополнительные версии, установленные pyenv:
* system (set by /home/abhishek/.pyenv/version) 3.9.19
Звездочка * в приведенном выше выводе команды означает текущую активную версию Python.h3. Использование дополнительных версий Python
Если вы просто хотите запустить что-то с определенной версией Python, вы можете использовать ее следующим образом:
pyenv exec python3.9.19 test.py
Кроме того, вы можете изменить версию Python по умолчанию по своему усмотрению:
pyenv global 3.9.19
Вы можете убедиться, что активная версия Python изменилась, посмотрев на запись с символом * в списке версий:
abhishek@itsfoss:~ $ pyenv global 3.9.19 abhishek@itsfoss:~ $ pyenv versions system * 3.9.19 (set by /home/abhishek/.pyenv/version) abhishek@raspberrypi:~ $
Позже вы можете вернуться к системной версии:
pyenv global system
Удаление дополнительных версий Python
Это тоже довольно просто. Вы можете либо удалить его папку:
rm -rf ~/.pyenv/versions/<python_version_to_delete>
Либо использовать команду pyenv следующим образом:
pyenv uninstall <python_version>
Предпочтение использования виртуальных сред
Даже если вы устанавливаете несколько версий Python, было бы неплохо В этом руководстве я покажу вам, как установить и использовать этот инструмент для одновременной установки нескольких версий Python на ваши дистрибутивы на базе Ubuntu и Debian. Таким образом, вы не будете путаться в пакетах на уровне системы.
Допустим, я хочу использовать Python 3.9.19 для проекта под названием coral. Я создам виртуальную среду для этого проекта (имя не обязательно должно совпадать):
pyenv virtualenv 3.9.19 coral
Теперь я переключусь на эту виртуальную среду:
pyenv local coral
Вы можете убедиться, что виртуальная среда используется:
abhishek@itsfoss:~ $ pyenv which python /home/abhishek/.pyenv/versions/coral/bin/python
Помните, что вы все еще не можете использовать „apt install python-package-name“, надеясь, что он будет установлен с другой версией Python в виртуальной среде. Для этого вам придется использовать pip:
pip install python-package-name
Это позволит установить указанный пакет Python в конкретную виртуальную среду с указанной вами версией Python.
Надеюсь, вам понравилось это руководство по управлению различными версиями Python на Ubuntu. Хотя я не являюсь экспертом по Python, но я постараюсь помочь вам, если у вас возникнут вопросы._
Комментарии (0)