Работа Python-приложений на VPS начинается с выбора версии и её корректной установки. В статье — три проверенных способа (APT, сборка из исходников, pyenv), рекомендации по выбору версии Python и поддержке безопасности для долгосрочных проектов.
Python — основной язык для разработки автоматизированных систем. Сегодня это язык миллионов приложений — от Telegram- или Discord-помощников, бронирующих столики в ресторанах, до парсеров данных, 24/7 отслеживающих цены на авиабилеты или нужный товар на маркетплейсе. Рассказываем, как развернуть Python на VPS-сервере, чтобы ваше ПО работало бесперебойно и масштабировалось под растущие нагрузки.
Выбор версии Python — и стабильность, и функционал
На сервере важен как функционал, так и стабильность, поэтому устанавливайте на VPS Python только в актуальных версиях (ни в коем случае не pre-release). Они обеспечивают совместимость с ключевыми библиотеками, такими как aiogram, python-telegram-bot или selenium, а также получают исправления безопасности годами, что критично для инфраструктуры. Например, Python 3.10 поддерживается до 2026 года, а новейший стабильный Python 3.13 поддерживается до 2029-го — это гарантирует, что в течение этого времени ваш код не сломается после очередного патча.
Однако не всегда стоит выбирать последние Python 3.12 и 3.13. Многие библиотеки (особенно legacy) ещё не адаптированы под них, да и сами они находятся на стадии исправления ошибок (bugfix). Для сервера лучше выбрать проверенную и надёжную версию.
Варианты:
- Python 3.10 — подойдёт для старых проектов, оптимизированная работа с памятью и паттерн-матчинг. Поддержка до октября 2026-го.
- Python 3.11 — золотая середина, даёт до 60 % прироста скорости против 3.10. Поддержка до октября 2027-го.
- Python 3.12 — улучшены старые и добавлены новые функции, прирост производительности до 50 %, но 3.12 требует проверки совместимости. Поддержка до октября 2028-го.
- Python 3.13 — самая новая актуальная версия на момент написания статьи, также требует проверки совместимости. Обновления будут выпускаться до 2029 года.
Перед установкой проверьте список зависимостей вашего проекта:
pip freeze > requirements.txt
Например, если в списке есть mysqlclient==1.4.6, который не поддерживает Python 3.11, — значит, настало время обновить библиотеки или найти альтернативу.
Установка Python на VPS
Способ 1. Через пакетный менеджер APT
На Debian/Ubuntu:
sudo apt update && sudo apt install -y software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install -y python3.10 python3.10-venv
Пояснение:
- dead snakes — так в шутку назван репозиторий с архивными версиями Python;
- python3.10-venv — модуль для создания и управления виртуальными средами.
Проверка:
python3.10 --version # Должно вывести: Python 3.10.X
Способ 2. Сборка вручную из исходного кода
Этот вариант для тех, кому важны максимальная производительность и оптимизация.
- Поставьте зависимости:
sudo apt install -y build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev
- Загрузите исходники (например, Python 3.11):
wget https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tgz
tar -xzf Python-3.11.0.tgz
cd Python-3.11.0
- Соберите и установите:
./configure --enable-optimizations
make -j $(nproc)
sudo make altinstall
--enable-optimizations включает оптимизацию под ваше железо, а altinstall предотвращает перезапись системного Python.
Способ 3. Pyenv — для гибкой настройки
Pyenv позволяет иметь несколько версий Python на сервере и управлять ими.
- Установка:
curl https://pyenv.run | bash
- Добавьте следующие строки в файл ~/.bashrc (или ~/.zshrc):
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.11
pyenv global 3.11
Виртуальные среды
Виртуальное окружение — это ваш «цифровой скафандр».
Создайте окружение для проекта:
python3.10 -m venv ~/project_env
Активация:
source ~/project_env/bin/activate
Теперь все пакеты будут устанавливаться только сюда (через pip install). Чтобы деактивировать, введите:
deactivate
Для удобства можно автоматизировать активацию при входе в папку. Добавьте в ~/.bashrc:
echo 'cd() { builtin cd "$@" && if [ -d "venv" ]; then source venv/bin/activate; fi }' >> ~/.bashrc
Теперь при переходе в каталог с папкой venv окружение будет включаться автоматически.
Интеграция с системой
Чтобы сделать Python 3.10 версией по умолчанию:
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1
sudo update-alternatives --config python3
Некоторые системные утилиты (например, apt) могут зависеть от прежних версий Python. Проверьте системные скрипты:
sudo apt update
Если видите ошибки — верните предыдущую версию через update-alternatives.
Как поддерживать безопасность
Стабильные версии получают патчи безопасности. Для их установки введите:
sudo apt update && sudo apt upgrade -y python3.11
Чтобы система автоматически загружала и устанавливала патчи, настройте автоматические обновления через unattended-upgrades:
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades
Если что-то пошло не так
- Вы установили Python, но модуль ssl (ModuleNotFoundError: No module named 'ssl') не обнаружен. Пересоберите Python, предварительно установив libssl-dev:
sudo apt install -y libssl-dev
cd Python-3.11.0
make clean
./configure --enable-optimizations
make -j $(nproc)
sudo make altinstall
- Если pyenv install выдаёт ошибку сборки, проверьте, установлены ли все зависимости.
- Виртуальное окружение не активируется. Проверьте права:
chmod -R +x ~/project_env/bin
Заключение
Установка актуальной версии Python на VPS обеспечивает:
- непрерывность работы — скрипты выполняются без перерывов;
- безопасность — своевременные обновления устраняют уязвимости;
- масштабируемость — возможность нарастить ресурсы сервера при увеличении нагрузки.
Рекомендации:
- используйте мониторинг (например, Prometheus + Grafana) для отслеживания потребления ресурсов;
- настраивайте регулярные бекапы через cron или специализированные инструменты.
Читайте в блоге:
- Микрофреймворк Flask Python: особенности и документация
- VPS для парсинга: как настроить сервер и автоматически собирать информацию
- Автозагрузка скриптов в Ubuntu