Як встановити Python на Linux
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 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), ми ізолюємо пакети нашого додатку від глобальних системних пакетів:
Для того, щоб вийти з віртуального оточення, виконуйте наступну команду:
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 можна за наступним прикладом:
pyenv install 3.12.2
Після цього перевірте, які версії вже встановлені:
pyenv versions
Тепер ви можете встановлювати версії Python для кожного вашого проєкту окремо. Для цього перейдіть до директорії вашого проєкту:
cd /path/to/project/
І наступною командою, на рівні командної оболонки, встановіть версію Python, яку ви попередньо встановили через команду pyenv install
:
pyenv local 3.10.3
Перебуваючи в директорії можна перевірити, чи коректно була встановлена версія для вашого проєкту через команди pyenv version або python -V
.
Ви можете помітити, що версія Python змінилась при виконанні тієї ж команди, коли ви перейдете в іншу директорію вашої системи:
Ця версія є глобальною і використовується за змовчуванням. Змінити її ви можете виконавши наступну команду, за умови, що версія вже встановлена через 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
.
Створивши віртуальне оточення для нашого проєкту, ми відділяємо пакети Python нашого окремого додатку від глобальних пакетів і запобігаємо конфліктам між ними. Наприклад, на глобальній версії 3.12.2 в нас може бути встановлений Django, а у віртуальному оточенні на цій же версії – Flask:
Інші корисні команди
Покинути віртуальне оточення:
pyenv deactivate
Переглянути список віртуальних оточень:
pyenv virtualenvs
Видалити оточення:
pyenv virtualenv-remove venv_my_project
На завершення
Ми розглянули 3 різні способи для встановлення версій Python на операційні системи Linux. На нашу думку, найзручнішим є встановлення через системний пакетний менеджер, адже таким чином встановлення відбувається за 2-3 команди.
У випадку, коли на сервері розміщується декілька різних додатків із різними версіями, краще обрати встановлення через Pyenv, також цей спосіб рекомендує і спільнота розробників Python. Після всіх налаштувань будь-яку версію можна встановити однією командою і одразу ж почати її використовувати.
У HostPro ви можете обрати хостинг для Python-проєктів будь-яких розмірів. Якщо потрібна буде допомога, пишіть нам у техпідтримку, з радістю проконсультуємо.
Хостинг для Python
з безкоштовною підтримкою
Можливо, вас зацікавить
Причини виникнення помилки 502. Як її виправити?
Помилки 5хх означають проблеми на боці сервера. Якщо говорити конкретно про помилку 502, то...
Оновлено: 30.10.2024
|Причини виникнення помилки 403. Як виправити?
Для більшості користувачів інтернету не надто принципово, чому вони не можуть потрапити на сайт....
Оновлено: 23.10.2024
|Причини виникнення помилки 508. Як виправити?
Якщо коротко, помилка 508: Resource Limit Is Reached зазвичай означає, що ваш обліковий запис...
Оновлено: 15.10.2024
|Як вставити картинку в HTML й оптимізувати її для кращого ранжування в Google
Погодьтеся, візуальні ефекти відіграють важливу роль у створенні привабливого та функціонального інтерфейсу. Тож у...
Оновлено: 26.09.2024
|
Наш телеграм
з важливими анонсами, розіграшами й мемами
Приєднатися