Подробный гайд по развёртыванию среды разработки Python 3.12 на CentOS 7 - Часть 1

Подробный гайд по развёртыванию среды разработки Python 3.12 на CentOS 7: сборка OpenSSL 1.1.1, создание venv, настройка линтеров и подключение IDE.

2026.10.02                  


Подробный гайд по развёртыванию среды разработки Python 3.12 на CentOS 7 - Часть 1Подробный гайд по развёртыванию среды разработки Python 3.12 на CentOS 7 - Часть 1

Важно:

Поддержка CentOS 7 официально завершена 30.06.2024. Обновлений безопасности больше нет. Если система доступна из интернета, лучше мигрировать на AlmaLinux 8/9, Rocky Linux 8/9, Ubuntu 22.04/24.04 или Debian 12.

Если CentOS 7 нужно оставить по требованию инфраструктуры, лучше использовать изолированный сервер, закрытый сетевой доступ и не размещать на нём публичные сервисы.


1. Что получится в результате



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

  • рабочий yum, переведённый на архивные репозитории vault.centos.org;
  • компиляторы и зависимости для сборки Python;
  • собственный современный OpenSSL 1.1.1;
  • установленный Python 3.12 из исходников;
  • отдельные виртуальные окружения venv для проектов;
  • обновлённые pip, setuptools, wheel;
  • базовые инструменты разработки: pytest, ruff, black, mypy;
  • понимание, как подключить проект к VS Code или PyCharm.

В гайде используется путь: сборка Python из исходников. Для CentOS 7 это самый надёжный способ получить актуальный Python 3.


2. Важные принципы для CentOS 7

2.1. Не удаляйте системный Python 2.7

В CentOS 7 системный python — это Python 2.7. Он используется системными утилитами, включая yum.

Не делайте:

sudo rm -f /usr/bin/python

Нежелательно делать:

sudo ln -s /usr/local/bin/python3.12 /usr/bin/python

Лучше использовать отдельные команды:

python3
python3.12

или активировать виртуальное окружение проекта.


2.2. Не устанавливайте пакеты через sudo pip

Плохо:

sudo pip install requests

Правильно:

python3 -m venv .venv
source .venv/bin/activate
pip install requests

2.3. Репозитории нужно перевести на vault.centos.org

После завершения поддержки стандартные зеркала mirror.centos.org больше не работают как источник пакетов.

Нужно использовать архив:

http://vault.centos.org

3. Подготовка пользователя

Рекомендую не разрабатывать под root. Создайте отдельного пользователя.

Например:

sudo useradd -m -s /bin/bash dev
sudo passwd dev
sudo usermod -aG wheel dev

Далее зайдите под пользователем dev:

su - dev

Если sudo не работает, проверьте, что пользователь состоит в группе wheel:

groups

В выводе должна быть группа wheel.


4. Переводим yum на архивные репозитории

Сделайте резервную копию репозиториев:

sudo cp -a /etc/yum.repos.d /etc/yum.repos.d.bak

Отключите mirrorlist и замените адреса на vault.centos.org:

sudo sed -i 's|^mirrorlist=|#mirrorlist=|g' /etc/yum.repos.d/CentOS-*.repo
sudo sed -i 's|^#baseurl=http://mirror.centos.org/centos|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*.repo
sudo sed -i 's|^baseurl=http://mirror.centos.org/centos|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*.repo

Очистите кэш и пересоздайте его:

sudo yum clean all
sudo yum makecache

Проверьте:

yum repolist

Если репозитории видны и команды yum install работают, значит замена выполнена успешно.


5. Установка базовых пакетов

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

sudo yum groupinstall -y "Development Tools"
sudo yum install -y \
    wget \
    curl \
    ca-certificates \
    tar \
    which \
    git \
    sudo \
    vim-enhanced

Проверьте:

gcc --version
make --version
git --version

6. Установка зависимостей для сборки Python

Установите библиотеки, чтобы у Python были модули ssl, sqlite3, lzma, bz2, readline, ctypes и другие:

sudo yum install -y \
    zlib-devel \
    bzip2-devel \
    xz-devel \
    libffi-devel \
    sqlite-devel \
    readline-devel \
    ncurses-devel \
    gdbm-devel \
    tk-devel \
    libuuid-devel

Если графический интерфейс и tkinter не нужны, tk-devel можно исключить. Но для полноценной сборки лучше оставить.


Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.


Статью подготовил: Аверко Денис Сергеевич @Nymexis г. Омск (специалист по ЗИ)

Комментарии

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