Python — це багатофункціональна мова програмування, яка підходить для вирішення найрізноманітніших завдань, від створення веб-сайтів до аналізу даних. Він популярний серед розробників завдяки своїй простоті та універсальності.
У цій статті ми розповімо, як встановити Python на ваш Linux-дистрибутив.
Ми розглянемо три варіанти установки Python:
- За допомогою пакетного менеджера — найпростіший і найпоширеніший метод установки Python. У більшості дистрибутивів Linux вже є пакети Python у їх репозиторіях.
- З вихідних кодів — цей спосіб надає більше гнучкості, але може виявитися складнішим.
- За допомогою пакетного менеджера для Python (pyenv) — найзручніший спосіб, що вимагає додаткових налаштувань.
Перевірка версій Python
Зазвичай на більшості дистрибутивів Linux Python 3 версії вже встановлений, як стандартна опція. Ми можемо перевірити його версію за допомогою наступної команди, відкривши термінал.
python3 --version
Однак на застарілих версіях дистрибутивів може бути встановлений Python 2-ї версії, для нього використовуємо команду
python --version
Установка Python через пакетний менеджер
Перед установкою необхідно оновити системні пакети та репозиторії, і тут розглянемо для різних версій свої способи
Debian / Ubuntu
sudo apt update && sudo apt upgrade -y
RHEL (Fedora / Almalinux / RockyOS / CentOS)
sudo yum update -y
Для дистрибутивів Ubuntu нам легко розширити список доступних версій, додавши репозиторій deadsnakes:
sudo add-apt-repository ppa:deadsnakes/ppa
Для дистрибутивів на основі Red Hat (Fedora / Almalinux / RockyOS / CentOS) легко додати репозиторій EPEL (Extra Packages for Enterprise Linux):
sudo yum install epel-release -y
Далі нам потрібно перевірити, які версії Python доступні для установки:
Debian / Ubuntu
sudo apt search python | grep ^python
RHEL (Fedora / Almalinux / RockyOS / CentOS)
sudo yum list available | grep ^python
Щоб обмежитися потрібною нам версією, необхідно ввести команду за прикладом (шукаємо, доступна чи нам версія python 3.8, так як 12 версія у нас вже встановлена)
Debian / Ubuntu
sudo apt-cache search python | grep -E ^python3?\.8
RHEL (Fedora / Almalinux / RockyOS / CentOS)
sudo yum list available | grep -E ^python3?\.8
Якщо в списку є потрібна нам версія, то встановити її можна за допомогою команди
Debian / Ubuntu
sudo apt install python3.8
RHEL (Fedora / Almalinux / RockyOS / CentOS)
sudo yum install python3.8 -y
Тут важливий момент, а саме потрібно вказувати мінорну версію через крапку (python3.10) чи без (python310), залежить від того, як називається пакет версії. Це можна дізнатися з результату виконання попередніх команд, які ми використовували для перевірки доступних версій для установки.
Щоб звернутися до встановленої версії інтерпретатора, потрібно вказати його номер і версію в команді:
python3.8 --version
Компиляція Python з вихідного коду
Компиляція версії Python з вихідного коду вимагає установки додаткових залежностей. Виконуємо установку наступними командами:
Debian / Ubuntu
sudo apt-get install -y make curl build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl
RHEL (Fedora / Almalinux / RockyOS / CentOS)
sudo yum -y install epel-release
sudo yum -y groupinstall «Інструменти розробки»
sudo yum -y install curl gcc make zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel tk-devel
Для зручності подальшої роботи по установці Python у змінних командної оболонки, давайте задамо номер версії у вигляді змінної
Перевірити список доступних версій Python можна на офф.сайті https://www.python.org/downloads/source/
Потрібно завантажити та розпакувати архів з вихідним кодом, а після потрібно перейти в розпаковану директорію, а для того, щоб спростити нам задачу, можемо скористатися сервісом Build, compile and install Python from source code https://www.build-python-from-source.com/
sudo apt-get update
sudo apt-get upgrade
sudo apt-get 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 liblzma-dev tk-dev
cd /tmp/
wget https://www.python.org/ftp/python/3.9.20/Python-3.9.20.tgz
tar xzf Python-3.9.20.tgz
cd Python-3.9.20
Тепер вказуємо конфігурацію для збірки і запускаємо компіляцію
sudo ./configure --prefix=/opt/python/3.9.20/ --enable-optimizations --with-lto --with-computed-gotos --with-system-ffi --enable-shared
sudo make -j "$(nproc)"
sudo ./python3.9 -m test -j "$(nproc)"
sudo make altinstall
sudo rm /tmp/Python-3.9.20.tgz
В залежності від наших потреб у використанні Python можете додати наступні опції до команди ./configure, яку ми використовували вище. Зараз наведемо приклади того, що можемо додати:
--prefix=/path/to/directory - Вказує каталог установки.
--enable-optimizations - Включає оптимізацію для Python.
--enable-ipv6 - Включає підтримку мереж IPv6.
--with-lto - Включає Link-Time Optimization (LTO), що покращить продуктивність, але може збільшити час компіляції.
Щоб дізнатися більше про всі опції, конфігурації, потрібно виконати команду
./configure --help
Далі можемо додати додаткові інструменти для роботи
sudo /opt/python/3.9.20/bin/python3.9 -m pip install --upgrade pip setuptools wheel
sudo ln -s /opt/python/3.9.20/bin/python3.9 /opt/python/3.9.20/bin/python3
sudo ln -s /opt/python/3.9.20/bin/python3.9 /opt/python/3.9.20/bin/python
sudo ln -s /opt/python/3.9.20/bin/pip3.9 /opt/python/3.9.20/bin/pip3
sudo ln -s /opt/python/3.9.20/bin/pip3.9 /opt/python/3.9.20/bin/pip
sudo ln -s /opt/python/3.9.20/bin/pydoc3.9 /opt/python/3.9.20/bin/pydoc
sudo ln -s /opt/python/3.9.20/bin/idle3.9 /opt/python/3.9.20/bin/idle
sudo ln -s /opt/python/3.9.20/bin/python3.9-config /opt/python/3.9.20/bin/python-config
Після запуску цього коду у нас пройде компіляція, яка займе деякий час, а за результатом ми повинні будемо опинитися в директорії нашої встановленої версії
Зараз важливий крок, а саме необхідно перевірити правильність установки Python. Для встановленої нашої версії 3.9.20- перевіряємо наступною командою:
python3.9 --version
Якщо все працює коректно, то потрібно видалити файли вихідного коду, з яких ми виконували компіляцію, так як вони нам більше не потрібні:
rm -rf /tmp/Python-3.9.20 /tmp/Python-3.9.20.tar.gz
Бувають випадки, коли компіляція закінчується з помилками. Для цього потрібно повторно виконати установку, але цього разу без оптимізації. Перед цим потрібно виконати очищення тимчасових файлів, які були створені в процесі нашої минулої компіляції:
sudo make clean; ./configure; sudo make -j «$(nproc)»; sudo make install
Установка Python через pyenv
Якщо способи вище нам не підходять, то рекомендуємо спробувати pyenv, він надзвичайно зручний, якщо необхідно працювати над кількома проектами, які вимагають різні версії інтерпретатора. Цей менеджер версій дозволяє легко перемикатися між версіями та ізолювати залежності проекту.
Перед тим, як встановити pyenv, потрібно встановити залежності, необхідні для компіляції Python, команди для їх установки нам вже відомі з цієї статті вище, але потрібно буде додати ще й пакет git, оскільки завантажувати pyenv будемо з git-репозиторію
Debian / Ubuntu
sudo apt install -y curl git-core gcc make zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libssl-dev build-essential libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
RHEL (Fedora / Almalinux / RockyOS / CentOS)
sudo yum -y install epel-release
sudo yum -y groupinstall «Інструменти розробки»
sudo yum -y install git curl gcc make zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel tk-devel
Далі завантажуємо останню гілку вихідного коду pyenv з репозиторію на Github і встановлюємо його в шлях ~/.pyenv :
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
Тепер потрібно встановити змінну середовища PYENV_ROOT, щоб вона вказувала на шлях, куди ви встановили pyenv, і експортувати її. Потім додайте $PYENV_ROOT/bin в PATH, щоб запустити утиліту командного рядка pyenv як будь-яку іншу системну команду.
Вам також потрібно включити shims і автозавершення, додавши pyenv init в командний рядок, щоб мати можливість перемикатися між версіями Python «на льоту». Ви можете додати всі конфігурації за допомогою наступної команди:
echo -e "\n## pyenv configs\nexport PYENV_ROOT=\"\$HOME/.pyenv\"\nexport PATH=\"\$PYENV_ROOT/bin:\$PATH\"\n\nif command -v pyenv 1>/dev/null 2>&1; then\n eval \"\$(pyenv init -)\"\nfi" >> ~/.bashrc
## pyenv configs
export PYENV_ROOT=«$HOME/.pyenv»
export PATH=«$PYENV_ROOT/bin:$PATH»
if command -v pyenv 1>/dev/null 2>&1; then
eval «$(pyenv init -)»
fi
Після цього потрібно застосувати зміни:
source ~/.bashrc
Тепер на рівні оболонки bash користувача, з якого виконували установку, у вас є можливість використовувати, встановлювати і змінювати версії Python.
На цьому етапі можна перейти безпосередньо до установки потрібної вам версії Python. Перевірити список доступних для установки версій можна, виконавши наступну команду:
pyenv install -l
Встановити версії Python можна за наступним прикладом:
pyenv install 3.12.2
Потім перевіряємо, які версії вже встановлені:
pyenv versions
Тепер у нас є можливість встановлювати версії Python для кожного проекту окремо. Для цього потрібно перейти в директорію нашого проекту:
cd /path/to/project/
Тепер на рівні командної оболонки потрібно встановити версію Python, яку ми попередньо встановили через команду pyenv install :
pyenv local 3.10.3
Тепер потрібно перевірити, перебуваючи в директорії, коректно чи була встановлена версія для нашого проекту чи ні, за допомогою команд pyenv version або python -V.
Висновок
Ми розглянули 3 різних способи установки версій Python на Linux. Найзручнішим є метод установки через системний пакетний менеджер, адже установка проходить у 2-3 команди, однак коли на сервері можуть розміщуватися різні програми з різними версіями - краще вибрати установку через Pyenv. Цей спосіб рекомендує і спільнота Python, адже будь-яку версію можна встановити однією командою і відразу ж почати її використовувати.
В Zomro ви можете вибрати сервер для будь-яких потреб і будь-яких додатків.