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

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

2026.10.02                  


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

7. Сборка и установка OpenSSL 1.1.1

Системный OpenSSL в CentOS 7 старый — обычно это 1.0.2. Современные версии Python требуют более новый OpenSSL. Поэтому соберём OpenSSL 1.1.1 отдельно.

Создайте каталог для исходников:

mkdir -p ~/src
cd ~/src

Скачайте и распакуйте исходники:

wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz
tar xzf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w

Настройте сборку:

./config \
    --prefix=/usr/local/openssl-1.1.1 \
    --openssldir=/usr/local/openssl-1.1.1 \
    --libdir=lib \
    shared \
    zlib


Соберите:

make -j"$(nproc)"

Установите:

sudo make install_sw install_ssldirs

Добавьте библиотеки в каталог конфигурации ld:

echo "/usr/local/openssl-1.1.1/lib" | sudo tee /etc/ld.so.conf.d/openssl-1.1.1.conf
sudo ldconfig

Проверьте:

/usr/local/openssl-1.1.1/bin/openssl version

Ожидаемый вывод примерно такой:

OpenSSL 1.1.1w  11 Sep 2023

Также проверьте библиотеки:

ls /usr/local/openssl-1.1.1/lib/libssl.so*
ls /usr/local/openssl-1.1.1/lib/libcrypto.so*

8. Сборка и установка Python 3

Далее соберём актуальный Python 3. Для примера используется версия 3.12.7. При необходимости замените её на нужную ветку 3.12.x.

Перейдите в каталог исходников:

cd ~/src

Задайте переменные:

PY_VER=3.12.7
PY_MAJOR=3.12

Скачайте исходники:

wget https://www.python.org/ftp/python/${PY_VER}/Python-${PY_VER}.tgz
tar xzf Python-${PY_VER}.tgz
cd Python-${PY_VER}

Настройте сборку:

./configure \
    --prefix=/opt/python-${PY_VER} \
    --enable-optimizations \
    --with-ensurepip=install \
    --with-openssl=/usr/local/openssl-1.1.1 \
    --with-openssl-rpath=auto

Пояснения к ключевым флагам:

--prefix=/opt/python-${PY_VER}
    устанавливает Python в отдельный каталог, не трогая системный;

--enable-optimizations
    включает оптимизацию сборки, но увеличивает время установки;

--with-openssl=/usr/local/openssl-1.1.1
    указывает использовать собранный нами OpenSSL;

--with-openssl-rpath=auto
    помогает Python находить библиотеки OpenSSL без ручного LD_LIBRARY_PATH.

Соберите:

make -j"$(nproc)"

Установите:

sudo make altinstall

Именно altinstall безопаснее, потому что он не создаёт системную команду python, которая могла бы конфликтовать с системным Python 2.7.


9. Создание удобных симлинков

Создайте симлинки для новой версии Python:

sudo ln -sfn /opt/python-${PY_VER}/bin/python${PY_MAJOR} /usr/local/bin/python${PY_MAJOR}
sudo ln -sfn /opt/python-${PY_VER}/bin/pip${PY_MAJOR} /usr/local/bin/pip${PY_MAJOR}
sudo ln -sfn /opt/python-${PY_VER}/bin/python${PY_MAJOR} /usr/local/bin/python3
sudo ln -sfn /opt/python-${PY_VER}/bin/pip${PY_MAJOR} /usr/local/bin/pip3

Обновите кэш команд в текущей сессии:

hash -r

Проверьте, какая команда используется:

which python3
which python3.12

Ожидаемо:

/usr/local/bin/python3
/usr/local/bin/python3.12

Проверьте версию:

python3 --version
python3.12 --version
python3 -m pip --version

Проверьте поддержку SSL:

python3 -c "import ssl; print(ssl.OPENSSL_VERSION)"

Ожидаемый вывод примерно:

OpenSSL 1.1.1w  11 Sep 2023

Проверьте важные модули:

python3 -c "import sqlite3, ctypes, lzma, bz2, readline, ssl; print('Python modules OK')"

Если видите:

Python modules OK

значит базовая установка выполнена успешно.


10. Быстрая проверка установки

Создайте тестовое виртуальное окружение:

cd /tmp
python3 -m venv checkenv

Проверьте pip внутри окружения:

./checkenv/bin/python -m pip --version

Проверьте модули:

./checkenv/bin/python -c "import ssl, sqlite3, lzma, ctypes; print('venv OK')"

Удалите тестовое окружение:

rm -rf /tmp/checkenv

11. Структура рабочего каталога

Рекомендую заранее создать каталоги для проектов и служебных окружений:

mkdir -p ~/projects
mkdir -p ~/venvs

Например:

~/projects/      # ваши проекты
~/venvs/         # отдельные окружения для инструментов

12. Создание первого проекта

Создайте тестовый проект:

mkdir -p ~/projects/demo
cd ~/projects/demo


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

python3 -m venv .venv

Активируйте его:

source .venv/bin/activate

После активации приглашение обычно меняется и выглядит так:

(.venv) [dev@centos7 demo]$

Обновите пакетные инструменты внутри окружения:

python -m pip install --upgrade pip setuptools wheel

Установите тестовые пакеты:

pip install requests pytest ruff

Проверьте:

python -c "import requests; print(requests.__version__)"
pytest --version
ruff --version

Выйти из виртуального окружения можно командой:

deactivate

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


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

Комментарии

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