Black Friday! Отримайте до 9 місяців Хостингу в подарунок!

Детальніше

Як встановити Python на Linux

post thumbnail

Python – це універсальна мова програмування, що використовується для широкого спектру задач, від веб-розробки до аналізу даних. Вона популярна серед розробників завдяки своїй простоті та універсальності. 

Ця стаття допоможе вам встановити Python на ваш дистрибутив Linux. Ми розглянемо 3 способи:

  • Використання пакетного менеджера – найпростіший і найпоширеніший спосіб встановити Python. Більшість дистрибутивів Linux мають пакети Python у своїх репозиторіях.
  • З джерел – цей спосіб дає вам більше гнучкості, але він може бути складнішим.
  • Через пакетний менеджер для Python (pyenv) – найбільш зручний спосіб, але вимагає додаткових налаштувань.

Додатково розглянемо процес налаштування віртуального середовища для кожного з цих способів.

Хостинг | VPS | виділені сервери для проєктів на Python

Перевірка версії Python

Зазвичай на більшості дистрибутивів Linux Python 3-ї версії вже встановлений за змовчуванням. Ви можете перевірити його мінорну версію (x.X.x) та патч (x.x.X) за допомогою наступної команди:

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
sudo apt update -y

Для дистрибутивів на основі 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 | HostPro Wiki

Щоб звузити пошук до потрібної вам версії, вводьте версію команди за таким прикладом (шукаємо, чи доступна нам версія python 3.8):

Debian / Ubuntu

sudo apt-cache search python | grep -E ^python3?\.8

RHEL (Fedora / Almalinux / RockyOS / CentOS)

sudo yum list available | grep -E ^python3?\.8

⚠️ Для застарілих дистрибутивів Linux на основі RH (CentOS 7, наприклад), на жаль, не такий широкий список версій, доступних для встановлення через системний пакетний менеджер, тому, якщо потрібна версія не знайшлась у списку системних пакетів, можете перейти до наступної частини нашої статті і спробувати скомпілювати потрібну вам версію з вихідного коду.

Якщо ж у списку є потрібна вам версія, то виконати її встановлення можна за прикладом команди:

Debian / Ubuntu

sudo apt install python3.6 -y

RHEL (Fedora / Almalinux / RockyOS / CentOS)

sudo yum install python3.6 -y

Чи потрібно вказувати мінорну версію через крапку (python3.6) чи без (python36), залежить від того, як називається пакет версії. Це ви можете дізнатись з результату виконання попередньої команди, яку ми використовували для перевірки доступних для встановлення версій.

Щоб звернутись до встановленої версії інтерпретатора, вказуйте його номер та версію в команді також. Наприклад:

python3.6 --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 «Development tools»
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 у змінних командної оболонки, щоб не вказувати їх постійно в інших командах, які ми будемо виконувати в процесі встановлення:

export PYTHON_VERSION=3.12.2

Перевірити список доступних версій Python можете на офіційному сайті.

Завантажте, розпакуйте архів з вихідним кодом так перейдіть до розпакованої директорії:

cd /tmp/
curl -O https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tgz
tar -xvzf Python-${PYTHON_VERSION}.tgz
cd Python-${PYTHON_VERSION}

Тепер вкажіть конфігурацію для збірки та запустіть компіляцію:

./configure --enable-optimizations --with-lto
sudo make -j «$(nproc)»
sudo make install

Залежно від ваших потреб у використанні Python можете додати наступні опції до команди ./configure :

--prefix=/path/to/directory

 Вказує каталог встановлення.

--enable-optimizations

Вмикає оптимізацію для Python.

--enable-ipv6

Вмикає підтримку мереж IPv6.

--with-lto

Вмикає Link-Time Optimization (LTO), що покращить продуктивність, але й може збільшити час компіляції.

Ви можете дізнатись більше про всі опції конфігурації, виконавши:

./configure --help

Тепер можете перевірити, чи Python встановився коректно, а також його версію. Для встановленої в нашому випадку 3.12.2, наприклад, перевіряємо наступною командою:

python3.12 --version

Якщо все працює коректно, то не забуваємо видалити файли вихідного коду, з яких ми виконували компіляцію, вони нам більше непотрібні:

rm -rf /tmp/Python-${PYTHON_VERSION} /tmp/Python-${PYTHON_VERSION}.tar.gz

Для зручності, щоб отримати команди для встановлення вашої версії Python, можете використовувати сервіс Build, compile and install Python from source code.

⚠️ Помилки під час компіляції. Якщо компіляція завершилась з помилкою, то спробуйте виконати її повторно без оптимізації. Перед цим також виконайте очищення тимчасових файлів, які були створені з попередньої компіляції:

sudo make clean; ./configure; sudo make -j «$(nproc)»; sudo make install

Налаштування віртуального оточення

На цьому етапі ми вже можемо запускати скрипти та встановлювати пакети на нашу систему через пакетний менеджер pip. Але це краще робити у віртуальному оточенні, щоб при використанні однієї версії Python для різних додатків у нас не виникали конфлікти між модулями, необхідними для їх роботи:

mkdir my_project
cd my_project
python3.12 -m venv my_venv
source my_venv/bin/activate

Тепер вже у віртуальному оточенні можемо встановлювати додаткові модулі для наших додатків через інсталятор пакетів для Python (pip), наприклад:

pip install flask

Крім того, що при виконанні команди pip у нашому віртуальному оточенні нам не потрібно вказувати версію Python (наприклад, pip3.12 для версії 3.12), ми ізолюємо пакети нашого додатку від глобальних системних пакетів:

Встановлення Python на Linux | HostPro Wiki

Для того, щоб вийти з віртуального оточення, виконуйте наступну команду:

deactivate

Встановлення Python через pyenv

Якщо вказані вище способи вам не підходять, то рекомендуємо спробувати pyenv, він особливо зручний, якщо ви працюєте над декількома проєктами, що вимагають різних версій інтерпретатора. Цей менеджер версій Python дозволяє легко перемикатися між версіями й ізолювати залежності проєкту.

Перш ніж встановлювати 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 «Development Tools»
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 (Debian / Ubuntu; RHEL (Fedora / Almalinux / RockyOS / CentOS) | HostPro Wiki

Встановити версії Python можна за наступним прикладом:

pyenv install 3.12.2

Після цього перевірте, які версії вже  встановлені:

pyenv versions

Встановлення Python на Linux і налаштування оточення | HostPro Wiki

Тепер ви можете встановлювати версії Python для кожного вашого проєкту окремо. Для цього перейдіть до директорії вашого проєкту:

cd /path/to/project/

І наступною командою, на рівні командної оболонки, встановіть версію Python, яку ви попередньо встановили через команду pyenv install :

pyenv local 3.10.3

Перебуваючи в директорії можна перевірити, чи коректно була встановлена версія для вашого проєкту через команди pyenv version або python -V.

Ви можете помітити, що версія Python змінилась при виконанні тієї ж команди, коли ви перейдете в іншу директорію вашої системи:

Як встановити Python на Linux (Debian / Ubuntu; RHEL (Fedora / Almalinux / RockyOS / CentOS) | HostPro Wiki

Ця версія є глобальною і використовується за змовчуванням. Змінити її ви можете виконавши наступну команду, за умови, що версія вже встановлена через pyenv install x.x.x :

pyenv global 3.12.2

❗ Не змінюйте глобальну версію для користувача root. Це може призвести до несправності системних утиліт, якщо вони не сумісні з новою версією Python.

Налаштування віртуального оточення на pyenv

pyenv керує віртуальними середовищами за допомогою плагіна pyenv-virtualenv, який автоматизує керування середовищами virtualenv для Python на Linux та інших UNIX-подібних системах. Встановіть цей плагін:

git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
source ~/.bashrc

Створіть віртуальне середовище для вашого проєкту:

mkdir my_project
cd my_project
pyenv virtualenv 3.12.2 venv_my_project

Тепер можете активувати його:

pyenv activate venv_my_project

Якщо під час активації віртуального середовища отримуєте помилку, спробуйте оновити віртуальне оточення для користувача командою source ~/.bashrc.

Налаштування віртуального оточення на pyenv | HostPro Wiki

Створивши віртуальне оточення для нашого проєкту, ми відділяємо пакети Python нашого окремого додатку від глобальних пакетів і запобігаємо конфліктам між ними. Наприклад, на глобальній версії 3.12.2 в нас може бути встановлений Django, а у віртуальному оточенні на цій же версії – Flask:

Встановлення, налаштування і запуск Python на Linux | HostPro Wiki

Інші корисні команди

Покинути віртуальне оточення:

pyenv deactivate

Переглянути список віртуальних оточень:

pyenv virtualenvs

Видалити оточення:

pyenv virtualenv-remove venv_my_project

На завершення

Ми розглянули 3 різні способи для встановлення версій Python на операційні системи Linux. На нашу думку, найзручнішим є встановлення через системний пакетний менеджер, адже таким чином встановлення відбувається за 2-3 команди.

У випадку, коли на сервері розміщується декілька різних додатків із різними версіями, краще обрати встановлення через Pyenv, також цей спосіб рекомендує і спільнота розробників Python. Після всіх налаштувань будь-яку версію можна встановити однією командою і одразу ж почати її використовувати.

У HostPro ви можете обрати хостинг для Python-проєктів будь-яких розмірів. Якщо потрібна буде допомога, пишіть нам у техпідтримку, з радістю проконсультуємо.

Хостинг для Python

з безкоштовною підтримкою

Telegram Hostpro

Наш телеграм

з важливими анонсами, розіграшами й мемами

Приєднатися

Можливо, вас зацікавить

Причини виникнення помилки 502. Як її виправити?

Причини виникнення помилки 502. Як її виправити?

Помилки 5хх означають проблеми на боці сервера. Якщо говорити конкретно про помилку 502, то...

Ruslan Holovatiuk | Оновлено: 30.10.2024

Причини виникнення помилки 403. Як виправити?

Причини виникнення помилки 403. Як виправити?

Для більшості користувачів інтернету не надто принципово, чому вони не можуть потрапити на сайт....

Ruslan Holovatiuk | Оновлено: 23.10.2024

Причини виникнення помилки 508. Як виправити?

Причини виникнення помилки 508. Як виправити?

Якщо коротко, помилка 508: Resource Limit Is Reached зазвичай означає, що ваш обліковий запис...

Ruslan Holovatiuk | Оновлено: 15.10.2024

Як вставити картинку в HTML й оптимізувати її для кращого ранжування в Google

Як вставити картинку в HTML й оптимізувати її для кращого ранжування в Google

Погодьтеся, візуальні ефекти відіграють важливу роль у створенні привабливого та функціонального інтерфейсу. Тож у...

Diana Honcharenko | Оновлено: 26.09.2024