- Home »

Установка Python 3 и настройка окружения разработки на Ubuntu 24
Современные веб-приложения и система автоматизации сервера требуют грамотной настройки Python окружения. Установка Python 3 на Ubuntu 24 — это не просто вопрос apt install, это целый комплекс решений, который определяет стабильность и производительность ваших проектов. Эта статья поможет вам настроить идеальное окружение разработки, избежать распространённых ошибок и получить максимум от современных инструментов Python.
Как работает Python в Ubuntu 24
Ubuntu 24 поставляется с предустановленным Python 3.12, но системный Python лучше не трогать — он нужен для работы пакетного менеджера и других системных утилит. Вместо этого мы создадим изолированное окружение, которое не будет конфликтовать с системными пакетами.
Основные компоненты экосистемы Python в Ubuntu:
- python3 — основной интерпретатор
- pip — менеджер пакетов
- venv — создание виртуальных окружений
- build-essential — компиляция C-расширений
- python3-dev — заголовочные файлы для компиляции
Пошаговая установка и настройка
Начнём с обновления системы и установки необходимых пакетов:
sudo apt update && sudo apt upgrade -y
sudo apt install -y python3 python3-pip python3-venv python3-dev build-essential
sudo apt install -y curl wget git vim software-properties-common
Проверим установленную версию Python:
python3 --version
pip3 --version
Создадим символическую ссылку для удобства (опционально):
sudo ln -sf /usr/bin/python3 /usr/bin/python
Для работы с несколькими версиями Python установим deadsnakes PPA:
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.11 python3.11-venv python3.11-dev
Настройка виртуальных окружений
Создадим структуру каталогов для проектов:
mkdir -p ~/projects/python
cd ~/projects/python
Создание и активация виртуального окружения:
# Создание окружения
python3 -m venv myproject_env
# Активация окружения
source myproject_env/bin/activate
# Проверка активации
which python
pip list
Обновим pip и установим основные пакеты:
pip install --upgrade pip setuptools wheel
pip install requests numpy pandas flask fastapi
Установка и настройка pyenv
Для продвинутого управления версиями Python рекомендую pyenv:
curl https://pyenv.run | bash
Добавим в ~/.bashrc:
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 install 3.12.0
pyenv install 3.11.5
pyenv global 3.12.0
pyenv versions
Практические примеры и кейсы
Сценарий | Рекомендуемый подход | Плюсы | Минусы |
---|---|---|---|
Веб-разработка | venv + requirements.txt | Простота, быстрота | Ограниченные возможности |
Data Science | conda/miniconda | Управление бинарными пакетами | Больше места на диске |
DevOps/автоматизация | pyenv + pipx | Изоляция CLI-утилит | Сложность настройки |
Продакшен-сервер | Docker + системный Python | Контейнеризация | Overhead |
Установка Poetry для управления зависимостями
Poetry — современный инструмент для управления проектами Python:
curl -sSL https://install.python-poetry.org | python3 -
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
Создание нового проекта с Poetry:
poetry new myproject
cd myproject
poetry add requests fastapi
poetry add --group dev pytest black flake8
poetry install
poetry shell
Настройка IDE и редакторов
Для VS Code установим Python Extension Pack:
code --install-extension ms-python.python
code --install-extension ms-python.flake8
code --install-extension ms-python.black-formatter
Для Vim/Neovim добавим в ~/.vimrc:
set number
set autoindent
set expandtab
set shiftwidth=4
set softtabstop=4
syntax on
Проблемы и их решения
Проблема: Ошибка при установке пакетов с C-расширениями
Решение:
sudo apt install python3-dev build-essential libffi-dev libssl-dev
export CFLAGS="-Wno-error=incompatible-pointer-types"
Проблема: Конфликт версий pip
Решение:
python3 -m pip install --user --upgrade pip
python3 -m pip install --user pipx
pipx ensurepath
Проблема: Медленная установка пакетов
Решение:
pip install -i https://pypi.org/simple/ --trusted-host pypi.org --trusted-host pypi.python.org package_name
Автоматизация и скрипты
Создадим скрипт для быстрой настройки окружения:
#!/bin/bash
# setup_python_env.sh
PROJECT_NAME=$1
PYTHON_VERSION=${2:-3.12}
if [ -z "$PROJECT_NAME" ]; then
echo "Usage: $0 [python_version]"
exit 1
fi
echo "Creating Python environment for $PROJECT_NAME"
mkdir -p ~/projects/$PROJECT_NAME
cd ~/projects/$PROJECT_NAME
python$PYTHON_VERSION -m venv venv
source venv/bin/activate
pip install --upgrade pip setuptools wheel
pip install requests pytest black flake8 mypy
echo "venv/" > .gitignore
echo "*.pyc" >> .gitignore
echo "__pycache__/" >> .gitignore
echo "Environment created successfully!"
echo "Activate with: source ~/projects/$PROJECT_NAME/venv/bin/activate"
Сделаем скрипт исполняемым:
chmod +x setup_python_env.sh
./setup_python_env.sh myproject 3.12
Интеграция с системными сервисами
Создадим systemd-сервис для Python-приложения:
# /etc/systemd/system/myapp.service
[Unit]
Description=My Python App
After=network.target
[Service]
Type=simple
User=ubuntu
WorkingDirectory=/home/ubuntu/projects/myapp
Environment=PATH=/home/ubuntu/projects/myapp/venv/bin
ExecStart=/home/ubuntu/projects/myapp/venv/bin/python app.py
Restart=always
[Install]
WantedBy=multi-user.target
Активация сервиса:
sudo systemctl daemon-reload
sudo systemctl enable myapp
sudo systemctl start myapp
sudo systemctl status myapp
Мониторинг и производительность
Установим инструменты для мониторинга:
pip install psutil memory_profiler line_profiler
pip install py-spy # профилировщик для продакшена
Пример использования профилировщика:
@profile
def slow_function():
# ваш код
pass
# Запуск с профилированием
kernprof -l -v script.py
Интересные факты и нестандартные применения
- Python как системный язык: Можно использовать Python для написания системных утилит, заменяя bash-скрипты более читаемым кодом
- Встроенный веб-сервер:
python3 -m http.server 8000
— мгновенный файловый сервер - Отладка сети:
python3 -m pdb script.py
— встроенный отладчик - Форматирование JSON:
cat data.json | python3 -m json.tool
— красивый вывод JSON - Календарь в терминале:
python3 -m calendar
— встроенный календарь
Автоматизация деплоя
Создадим Makefile для автоматизации рутинных задач:
# Makefile
.PHONY: install test lint deploy
install:
python3 -m venv venv
. venv/bin/activate && pip install -r requirements.txt
test:
. venv/bin/activate && python -m pytest tests/
lint:
. venv/bin/activate && flake8 src/
. venv/bin/activate && black --check src/
deploy:
rsync -avz --delete . user@server:/path/to/app/
ssh user@server 'cd /path/to/app && make install && sudo systemctl restart myapp'
Безопасность и права доступа
Создадим отдельного пользователя для Python-приложений:
sudo adduser --system --group --no-create-home pyapp
sudo mkdir -p /opt/pyapp
sudo chown pyapp:pyapp /opt/pyapp
Настройка ограничений через systemd:
# В файле сервиса
[Service]
User=pyapp
Group=pyapp
NoNewPrivileges=true
PrivateTmp=true
ProtectSystem=strict
ProtectHome=true
ReadWritePaths=/opt/pyapp
Альтернативные решения
Помимо стандартных инструментов, существуют альтернативы:
- conda/miniconda — для Data Science проектов
- pipenv — упрощённая альтернатива venv + pip
- Docker — полная изоляция окружения
- asdf — универсальный менеджер версий
- uv — быстрая замена pip, написанная на Rust
Для серверных решений рекомендую рассмотреть аренду VPS или выделенного сервера с предустановленным Python окружением.
Заключение и рекомендации
Правильная настройка Python окружения на Ubuntu 24 — это инвестиция в будущее ваших проектов. Рекомендую использовать следующий подход:
- Для простых проектов: python3-venv + pip
- Для сложных проектов: Poetry + pyenv
- Для продакшена: Docker + systemd
- Для Data Science: conda + Jupyter
Не забывайте про безопасность — используйте отдельных пользователей для приложений, ограничивайте права доступа и регулярно обновляйте пакеты. Автоматизируйте рутинные задачи с помощью Makefile и скриптов — это сэкономит время и уменьшит количество ошибок.
Полезные ссылки для дальнейшего изучения:
- Официальная документация Python
- Poetry – управление зависимостями
- pyenv – менеджер версий Python
- venv – виртуальные окружения
В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.
Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.