Установка Python 3.9 и виртуального окружения (VENV)

Python — это простой по синтаксису и лёгкий для начинающего разработчика язык программирования, с помощью которого можно решить огромный спектр задач, начиная от автоматизации любых операций и заканчивая написанием полноценных веб-сервисов или сложных алгоритмов для машинного обучения.

Данная статья поможет при установке Python 3 на сервер с любой актуальной версией операционной системы на базе Ubuntu и Debian. Мы разберём, как и для чего используется виртуальное окружение (virtualenv) и менеджер пакетов PIP3, а ещё рассмотрим, как добавить скрипт Python в автозагрузку при старте операционной системы через планировщик Cron.

Содержание

Установка Python на Ubuntu

Для примера возьмём Ubuntu 18, там установлена нативная версия Python 3.6.9 по умолчанию. Проверим версию установленного пакета командой:

python3 --version
Если вы планируете запускать на сервере несколько разных программ Python, то лучше использовать виртуальное окружение, чтобы избежать проблем с производительностью. Использование VENV позволит установить разные пакеты PIP и не нагружать ими нативную версию Python. Подробнее об этом рассказываем в одном из следующих разделов

Запускаем обновление репозиториев и пакетов операционной системы. На боевом сервере делать это не рекомендую, в этом случае просто обновим репозитории (apt update):

apt update && apt upgrade -y

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

apt install software-properties-common -y && add-apt-repository ppa:deadsnakes/ppa

Подтверждаем добавления репозитория нажатием кнопки Enter.

После чего можно установить на сервер любую доступную версию Python, подходящую для ваших задач. На момент написания статьи последняя доступная стабильная версия из репозитория — Python 3.9.

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

apt-cache policy python3.9 

#Вместо 3.9 можно указать нужную версию.

Установим Python 3.9, для этого выполняем команду:

apt install python3.9 -y

Для проверки запустим интерактивную сессию Python:

python3.9

print("Hello, World!")

Для выхода из интерактивной сессии нажимаем Ctrl+D, также выйти можно с помощью команды quit() или exit().

Установка Python на Debian

На Debian 11 для установки Python3.9.2 достаточно будет выполнить команду:

apt install software-properties-common -y

Для операционных систем Debian 9 и 10 процесс установки отличается Python 3.9 отличается, будем собирать пакеты скачанные с официального сайта. Но не волнуйтесь, в этом нет ничего сложного.

Обновляем репозитории и устанавливаем обновления для нового сервера, для уже работающего обновим только репозитории (apt update):

apt update && apt upgrade -y

Устанавливаем службы которые необходимы для сборки: 

apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev curl libbz2-dev -y

Загружаем архив с нужной версией и распакуем его:

wget https://www.python.org/ftp/python/3.9.12/Python-3.9.12.tgz && tar -xf Python-3.9.12.tgz

Посмотреть доступные для загрузки архивы и скопировать ссылку можно на официальном сайте

Перейдём в директорию с Python:

cd /root/Python-3.9.12/

#В моём случае работаю под пользователем root и архив был загружен/распакован в корневую директорию этого пользователя /root/

И запустим сценарий конфигурации: 

./configure --enable-optimizations

После чего соберём пакет командой:

make -j 2

#Ключ -j указывает на количество одновременно выполняемых операций, здесь можно указать число равное количеству ядер процессора для вашего сервера чтобы ускорить сборку

Когда процесс будет завершён запускаем финальную команду:

make altinstall

Готово, на сервер установлена альтернативная версия Python 3.9.12

Для проверки запустим интерактивную сессию Python.

Управление альтернативными версиями

Для управления установленными версиями Python и выбора основной используем службу update-alternatives.

Хочу предупредить, что выполнять такие действия нежелательно по причине того, что системные программы написаны и протестированы именно для той версии Python, которая была установлена по умолчанию, а обновление основной версии может нарушить работу каких-либо служб. Для подобных задач лучше использовать виртуальное окружение Python VENV, об этом в следующем разделе.

Если вы всё же приняли решение обновить нативную версию, то добавляем установленные на сервере версии как альтернативные:

update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1

#/usr/bin/python3.6 — путь до установленной версии в операционной системе. 

#1 — приоритет.

update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 2

#Здесь принцип тот же, путь до установленной версии и приоритет 2.

#Для Debian путь до установленной альтернативной версии отличается /usr/local/bin/python3.9

Проверяем:

update-alternatives --list python3

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

update-alternatives --config python3

Получившийся результат:

Установка и начало работы с Python virtualenv (VENV)

Аббревиатура VENV расшифровывается как «virtual environment», что в переводе означает «виртуальная среда». Размещение проектов в изолированной виртуальной среде позволяет управлять абсолютно разными проектами Python на одном сервере. Проекты могут использовать разный набор библиотек и разную версию Python, при этом для каждой отдельной виртуальной среды можно использовать собственные настройки. 

Выполним установку venv:

apt install python3-venv -y

Для установки venv на альтернативную версию для Ubuntu используем команду следующего вида:

apt install -y python3.9-venv -y

Создадим директорию, в которой будет находится наше виртуальное окружение, и сразу перейдём в неё:

mkdir fvds && cd fvds

Можно использовать любую удобную директорию.

Активируем виртуальную среду:

python3 -m venv fvds_env или python3.9 -m venv fvds_env

Где «fvds_env» название нашего проекта.

Активируем созданную среду командой:

source /путь_до_окружения/bin/activate

#В моём случае получилась вот такая команда: source /root/fvds/fvds_env/bin/activate

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

При работе в venv вы можете использовать команды python и pip вместо python3 и pip3 соответственно.

Для выхода из окружения используем команду:

deactivate

Для управления большим количеством окружений есть замечательный инструмент virtualenvwrapper. Более подробную информацию можно найти на официальном сайте этого программного обеспечения.

Установка менеджера пакетов PIP для Debian и Ubuntu

Для решения большинства задач в Python уже созданы библиотеки, и вам не требуется писать с нуля модули, например, для взаимодействия с базами данных или веб-сервером. В свободный доступ менеджера пакетов PIP добавлено более 382 тысяч пакетов, что само по себе является впечатляющей цифрой. Сложно вообразить, какое количество строк кода уже было написано и какие возможности нам открывает этот инструмент.

Приступим к установке менеджера PIP для управления библиотеками Python, которые не входят в стандартную сборку:

apt install python3-pip -y

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

python3.9 -m pip install --upgrade pip

#Вместо 3.9 можно указать нужную версию

Рассмотрим синтаксис утилиты:

pip3 [команда] [опции] [имя пакета]

Вот набор основных команд, которые пригодятся при работе с PIP:

  • install — установить пакет.
  • install -U — обновление пакетов.
  • uninstall — удалить пакет.
  • search — найти пакет.
  • list — список установленных пакетов.
  • show — просмотр информации о установленном пакете.

Для примера установим пакет aiogram

pip3 install aiogram

Проверяем наличие библиотеки для основной версии командой:

pip3 list | grep aiogram или pip3 show aiogram

Для установки библиотек на альтернативную версию Python используем команду следующего вида:

python3.9 -m pip install aiogram

Проверим, установилась ли эта библиотека на альтернативную версию:

python3.9 -m pip list | grep aiogram или python3.9 -m pip show aiogram

Найти название нужной библиотеки, посмотреть документацию к ней и получить команду для её установки всегда можно на официальном сайте pypi.org

Использование requirements.txt

Если потребуется масштабировать вашу программу, перенести её на другой сервер или развернуть проект из GitHub, не устанавливая каждый пакет PIP, который требуется для запуска, отдельно — всё это можно реализовать с помощью встроенного функционала. Все пакеты можно сохранить в файл requirements.txt(такое название необязательно, но является общепринятым стандартом), а затем развернуть их на сервере или в виртуальном окружении VENV. 

Чтобы сохранить информацию о всех установленных пакетах PIP, используем команду:

pip3 freeze > requirements.txt

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

python3 -m pip install -r requirements.txt или pip3 install -r requirements.txt

Запуск скриптов Python при старте сервера через Cron

Большинство начинающих пользователей сталкиваются с вопросом: «Как автоматизировать запуск программы на Python и добавить скрипт автозагрузку?»

Самый простой способ добавить задачу в Cron.

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

@reboot source /путь_до_окружения/bin/activate  &&  python /путь_до_скрипта.py

Запуск скрипта без виртуального окружения:

@reboot /usr/bin/python3 /путь_до_скрипта.py

Проверить, правильно ли вы добавили команду, можно, запустив скрипт по путям, которые добавлены в планировщик Cron. Чтобы точно убедиться, что скрипт запускается после перезагрузки, давайте проверим это на практике и отправим сервер на перезагрузку командой:

reboot

Если ваш проект запустился после загрузки операционной системы, то всё работает. В ином случае смотрим логи Cron и ищем ошибку.

 

Этот материал был полезен?

Скидка 25% новым клиентам!
Закажи сервер сегодня и получи скидку на первый месяц аренды!