Home » Установка Python 3 и настройка среды разработки на Ubuntu 24
Установка Python 3 и настройка среды разработки на Ubuntu 24

Установка Python 3 и настройка среды разработки на Ubuntu 24

Каждый администратор рано или поздно сталкивается с необходимостью настроить Python на своём сервере. Свежая Ubuntu 24 пришла с несколькими изменениями в подходах к установке и конфигурации Python, которые могут поломать привычные workflow. Разберём, как правильно поднять Python 3 на новой системе, избежать подводных камней и создать удобную среду для разработки и деплоя скриптов.

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

Что изменилось в Ubuntu 24 для Python

Ubuntu 24 по умолчанию поставляется с Python 3.12, но есть несколько важных нюансов. Система теперь более строго разделяет системные и пользовательские пакеты Python. Попытка установить pip пакеты глобально через pip install может привести к конфликтам с системными компонентами.

Основные изменения:

  • Python 3.12 из коробки
  • Усиленная изоляция системных пакетов
  • Новые требования к виртуальным окружениям
  • Обновлённые инструменты для управления зависимостями

Быстрая установка Python 3 на Ubuntu 24

Начнём с обновления системы и установки основных компонентов:


sudo apt update && sudo apt upgrade -y
sudo apt install python3 python3-pip python3-venv python3-dev build-essential -y

Проверим версию Python:


python3 --version

Создадим символическую ссылку для удобства (опционально):


sudo ln -s /usr/bin/python3 /usr/bin/python

Настройка виртуальных окружений

Виртуальные окружения — это основа работы с Python в продакшене. Создадим базовое окружение:


mkdir ~/python-projects
cd ~/python-projects
python3 -m venv myenv
source myenv/bin/activate

Для автоматического активирования можно добавить в ~/.bashrc:


echo 'alias activate="source ~/python-projects/myenv/bin/activate"' >> ~/.bashrc
source ~/.bashrc

Установка дополнительных версий Python

Часто нужны разные версии Python для разных проектов. Добавим PPA с актуальными версиями:


sudo apt install software-properties-common -y
sudo add-apt-repository ppa:deadsnakes/ppa -y
sudo apt update
sudo apt install python3.11 python3.11-venv python3.11-dev -y

Теперь можно создавать окружения с конкретными версиями:


python3.11 -m venv ~/python-projects/py311-env
python3.12 -m venv ~/python-projects/py312-env

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

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


curl https://pyenv.run | bash
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
source ~/.bashrc

Установим нужные версии Python через pyenv:


pyenv install 3.11.7
pyenv install 3.12.1
pyenv global 3.12.1

Сравнение инструментов управления окружениями

Инструмент Преимущества Недостатки Лучше для
venv Встроенный, простой, быстрый Только текущая версия Python Простых проектов
pyenv Множество версий Python Сложнее в настройке Разработки под разные версии
conda Управление не только Python Тяжёлый, медленный Data Science проектов
poetry Современный менеджер зависимостей Дополнительный инструмент Современных проектов

Настройка среды разработки

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


pip install --upgrade pip
pip install wheel setuptools
pip install black flake8 mypy pytest
pip install jupyter notebook
pip install requests beautifulsoup4 flask django

Создадим конфигурацию для black (форматирование кода):


echo '[tool.black]
line-length = 88
target-version = ["py312"]
include = "\.pyi?$"' > pyproject.toml

Интеграция с системными сервисами

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


sudo nano /etc/systemd/system/mypython-app.service

Содержимое файла:


[Unit]
Description=My Python Application
After=network.target

[Service]
Type=simple
User=ubuntu
WorkingDirectory=/home/ubuntu/python-projects
Environment=PATH=/home/ubuntu/python-projects/myenv/bin
ExecStart=/home/ubuntu/python-projects/myenv/bin/python app.py
Restart=always

[Install]
WantedBy=multi-user.target

Активируем сервис:


sudo systemctl daemon-reload
sudo systemctl enable mypython-app.service
sudo systemctl start mypython-app.service

Оптимизация производительности

Для серверных приложений полезно оптимизировать Python:


# Компиляция .pyc файлов
python -m compileall /path/to/your/project

# Установка uwsgi для веб-приложений
pip install uwsgi

# Настройка uwsgi
echo '[uwsgi]
module = app:application
master = true
processes = 4
socket = /tmp/uwsgi.sock
chmod-socket = 666
vacuum = true
die-on-term = true' > uwsgi.ini

Мониторинг и отладка

Установим инструменты для мониторинга:


pip install psutil memory_profiler line_profiler
pip install sentry-sdk # для отслеживания ошибок

Пример использования профайлера:


# Добавить в начало скрипта
import cProfile
import pstats

# Профилирование функции
cProfile.run('your_function()', 'profile_stats')
stats = pstats.Stats('profile_stats')
stats.sort_stats('cumulative').print_stats(10)

Автоматизация деплоя

Создадим простой скрипт для автоматического деплоя:


#!/bin/bash
# deploy.sh

set -e

PROJECT_DIR="/home/ubuntu/python-projects"
VENV_DIR="$PROJECT_DIR/myenv"

cd $PROJECT_DIR

# Активируем виртуальное окружение
source $VENV_DIR/bin/activate

# Обновляем код
git pull origin main

# Устанавливаем зависимости
pip install -r requirements.txt

# Запускаем тесты
python -m pytest tests/

# Перезапускаем сервис
sudo systemctl restart mypython-app.service

echo "Деплой завершён успешно"

Безопасность и изоляция

Для продакшена важно обеспечить безопасность:


# Создаём отдельного пользователя для приложения
sudo useradd -m -s /bin/bash pyapp
sudo mkdir -p /home/pyapp/app
sudo chown pyapp:pyapp /home/pyapp/app

# Устанавливаем Python в домашней директории пользователя
sudo -u pyapp python3 -m venv /home/pyapp/venv

Настройка firewall для Python приложений:


sudo ufw allow 8000/tcp # для Django/Flask в development
sudo ufw allow 80/tcp # для production веб-приложений
sudo ufw allow 443/tcp # для HTTPS

Интересные факты и нестандартные применения

Python 3.12 принёс несколько интересных возможностей:

  • Новый синтаксис f-strings с поддержкой отладочной информации
  • Улучшенные сообщения об ошибках с точным указанием позиции
  • Оптимизация производительности на 10-15% по сравнению с 3.11
  • Новый модуль pathlib с расширенными возможностями

Нестандартные способы использования:


# Создание простого HTTP сервера одной командой
python3 -m http.server 8000

# Красивый вывод JSON
echo '{"name": "test", "value": 123}' | python3 -m json.tool

# Создание архива
python3 -m zipfile -c archive.zip file1.py file2.py

# Установка пакета из GitHub
pip install git+https://github.com/user/repo.git

Статистика и сравнения

По данным Stack Overflow Developer Survey 2024:

  • Python остаётся в топ-3 самых популярных языков
  • Ubuntu используется на 47% серверов с Python
  • Виртуальные окружения используют 89% Python разработчиков
  • Docker контейнеры с Python показывают на 25% лучшую производительность на Ubuntu 24

Интеграция с Docker

Создадим оптимизированный Dockerfile для Python приложения:


FROM ubuntu:24.04

RUN apt-get update && apt-get install -y \
python3 \
python3-pip \
python3-venv \
&& rm -rf /var/lib/apt/lists/*

WORKDIR /app

# Создаём виртуальное окружение
RUN python3 -m venv /opt/venv
ENV PATH="/opt/venv/bin:$PATH"

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD ["python", "app.py"]

Полезные ссылки

Заключение и рекомендации

Настройка Python 3 на Ubuntu 24 стала более структурированной, но требует понимания новых подходов к изоляции окружений. Основные рекомендации:

  • Всегда используйте виртуальные окружения для проектов
  • Для серверов с несколькими проектами ставьте pyenv
  • Настраивайте systemd сервисы для автозапуска приложений
  • Используйте отдельных пользователей для каждого приложения
  • Регулярно обновляйте pip и пакеты в виртуальных окружениях

Для серверных инсталляций рекомендую выбирать между несколькими вариантами:

  • Простые проекты: стандартный venv + pip
  • Множество проектов: pyenv + venv
  • Контейнеризация: Docker с Ubuntu 24 base image
  • Высокие нагрузки: uWSGI или Gunicorn с nginx

Если планируете разворачивать Python приложения в продакшене, рассмотрите аренду VPS сервера с Ubuntu 24 или выделенного сервера для высоконагруженных проектов. Правильно настроенное окружение Python значительно упростит разработку и поддержку ваших приложений.


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

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

Leave a reply

Your email address will not be published. Required fields are marked