Categories: Шпаргалки

Установка и использование Python на Ubuntu

Используемые термины: Python , Ubuntu .

Данная инструкция будет небольшой шпаргалкой по установке Python на Linux DEB (Ubuntu / Debian). Также мы рассмотрим некоторые служебные команды и разберем возможные ошибки, с которыми можно столкнуться при работе с Python.

Установка Python

Мы рассмотрим два способа установки питона на Linux Deb:

  1. Использование встроенного репозитория. Данный метод проще всего, но не позволит установить только те версии python, которые добавлены в репозиторий.
  2. Настройка дополнительного репозитория для установки пакетов определенной версии. Это потребует дополнительных действий, однако позволит установить больше различных версий пакета.

Пойдем по-очереди.

а) Нативный репозиторий.

Для того, чтобы посмотреть версии пакета Python, которые могут быть установлены, введем команды:

apt update

apt search —names-only ‘^python[.0-9]{3,4}$’

Если среди перечня версий есть нужная нам, выполняем установку командой:

apt install python3.11

* в данном примере будет установлен пакет python версии 3.11 .

б) Дополнительный репозиторий.

Установим пакет:

apt install software-properties-common

* software-properties-common — утилита для управления репозиториями из командной строки.

Добавим персональный архив пакетов (PPA) deadsnakes:

add-apt-repository ppa:deadsnakes/ppa

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

PY_VER=3.12

Можно установить пакет:

apt install python${PY_VER}

Несколько версий и версия по умолчанию

После установки можно посмотреть версию питона, который используется в системе:

python —version

При необходимости мы можем добавить установленную версию python в конфигурацию update-alternatives:

update-alternatives —install /usr/bin/python python /usr/bin/python${PY_VER} 0

* это позволит нам делать выбор, какую версию использовать по умолчанию.

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

update-alternatives —config python

Если же мы увидим что-то на подобие:

There is only one alternative in link group python (providing /usr/bin/python): /usr/bin/python3.12
Nothing to configure.

… значить в нашей системе установлена только одна версия python.

Установка расширений для Python

В python используется менеджер пакетов pip. С его помощью можно установить необходимые расширения, позволяющие использовать дополнительные функции.

Для начала, установим последнюю версию pip:

curl -sS https://bootstrap.pypa.io/get-pip.py | python3

Теперь можно использовать его для установки расширения, например, django:

python3 -m pip install django

Виртуальное окружение

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

Для начала, нам нужно задать рабочую версию python:

PY_VER=3.12

установить пакет python-venv:

apt install python${PY_VER}-venv

Теперь переходим в каталог с приложением с создадим окружение с использованием синтаксиса:

python<версия питона> -m venv <имя венва>

Например:

python${PY_VER} -m venv venv

Чтобы начать работу в созданном окружении, используем файл activate , который устанавливается в каталог bin венв-папки:

source venv/bin/activate

Приглашение командной строки должно замениться на:

(venv) …

Можно работает в виртуальной среде, например, установить зависимости:

pip install -r requirements.txt

После окончания работ в виртуальной среде, чтобы выйти в shell, вводим:

deactivate

Автозапуск приложения через systemd

Для автоматического запуска приложения в качестве службы лучше всего использовать systemd.

Создаем файл:

vi /etc/systemd/system/my-app.service

[Unit]
Description=my-app service
Wants=network.target
After=syslog.target network-online.target

[Service]
Type=simple
WorkingDirectory=/opt/my-app
ExecStart=/opt/my-app/venv/bin/python ./app.py
Restart=on-failure
RestartSec=10
KillMode=process

[Install]
WantedBy=multi-user.target

* в данном примере подразумевается, что наше приложение называется my-app и находится в каталоге /opt/my-app .

Когда мы не создали, а отредактировали файл systemd, его нужно перечитать командой:

systemctl daemon-reload

Можно разрешить и запустить приложение:

systemctl enable —now my-app

Посмотреть состояние службы можно командой:

systemctl status my-app

Решение проблем

fatal error: Python.h

Проблема может возникнуть при установке некоторых расширений python. В консоли мы видим ошибку:

fatal error: Python.h: No such file or directory

Причина: некоторые расширения устанавливаются из исходников. Для этого необходимо пакет python-dev, которого нет в системе.

Решение: устанавливаем пакет:

apt install python3.12-dev

* где 3.12 — версия python, для которого необходим пакет dev.

admin

Recent Posts

Что такое Zulip

Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…

2 месяца ago

Что такое Zookeeper

Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…

2 месяца ago

Что такое Zimbra

Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…

2 месяца ago

Что такое Zabbix

Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…

2 месяца ago

Что такое YouTube

YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…

2 месяца ago

Что такое yota

Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…

2 месяца ago