Python-update

Материал из WiKi - UserSide

en | ru

Если версия Python, установленная на вашей ОС, не поддерживается модулями или поллером, то необходимо установить дополнительно новую версию Python, удовлетворяющую всем требованиям.

Важно: Изменять системную версию Python на новую - не рекомендуется! Единственный правильный способ - это установить новую версию параллельно системной. Иначе могут перестать работать различные системные службы и утилиты, использующие Python.

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

sudo apt install -y python3-dev python3-pip python3-venv libffi-dev

После того, как все установлено, зайдите на сайт https://www.python.org/downloads/source/ и скопируйте номер последней версии текущей ветки или предыдущей, если текущая ветка слишком свежая. Например, если последняя версия 3.11.1, то надежней все таки установить версию 3.10.11, т.к. сразу после выхода новой версии (3.11) есть вероятность того, что не все зависимые пакеты ее поддерживают.

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

PY_VER=3.11.4

Далее приведены команды, которые вы просто выполняете по одной, одну за другой, чтобы контролировать процесс и в случае ошибки не выполнять остальные команды. Копируйте по одной строке и выполняйте:

curl -o python.tgz "https://www.python.org/ftp/python/${PY_VER}/Python-${PY_VER}.tgz"
tar xzf python.tgz
cd Python-${PY_VER}
./configure --enable-optimizations
make -j $(nproc)
sudo -H make altinstall
curl -sS https://bootstrap.pypa.io/get-pip.py | sudo -H python3.11
pip3.11 --version
cd ..
rm -rf Python-${PY_VER} python.tgz

После выполнения всех этих действий у вас в системе будет установлена еще одна версия Python. В данном случае это Python 3.11 а также инструмент pip тоже с версией 3.11.

Чтобы использовать именно эту версию python и pip, вам нужно указывать целиком имена файлов, которые вы запускаете. Например:

python3.11 --version
pip3.11 --version

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

sudo python3.11 -m venv venv
sudo venv/bin/pip install -U pip wheel
и т.д.