Python является одним из наиболее широко используемых языков программирования в мире. С простым и легким в освоении синтаксисом Python является популярным выбором для начинающих и опытных разработчиков. Python – довольно универсальный язык программирования. Его можно использовать для создания всевозможных приложений, от простых скриптов до сложных алгоритмов машинного обучения.
CentOS 8 включает Python версии 3.6, который можно установить или обновить с помощью инструмента dnf.
На момент написания, Python 3.8 является последним основным выпуском языка Python. Он включает в себя множество новых функций, таких как выражения присваивания, только позиционные параметры, поддержка f-строк и многое другое. Python 3.8 недоступен в стандартных репозиториях CentOS 8.
В этой статье объясняется, как собрать Python 3.8 на CentOS 8 из исходного кода. Мы также покажем вам, как создать виртуальную среду.
Установка Python 3.8 в CentOS 8
Компиляция Python из исходного кода требует компилятора C/C++ и других пакетов разработчика. Первое, что нужно сделать, это установить пакеты, необходимые для сборки Python из исходного кода на CentOS 8. Для этого выполните следующие команды от имени пользователя root или sudo :
sudo dnf groupinstall 'development tools'
sudo dnf install bzip2-devel expat-devel gdbm-devel \ ncurses-devel openssl-devel readline-devel \ sqlite-devel tk-devel xz-devel zlib-devel wget
Загрузите исходный код последней версии со страницы загрузки Python, используя wget. В настоящее время последняя версия Python 3.8 3.8.1. Если для загрузки доступна новая версия, измените переменную VERSION в приведенной ниже команде:
VERSION=3.8.1wget https://www.python.org/ftp/python/${VERSION}/Python-${VERSION}.tgz
Когда загрузка будет завершена, распакуйте архив в формате gzip :
tar -xf Python-${VERSION}.tgz
Перейдите в исходный каталог Python и запустите configureсценарий, который выполняет ряд проверок, чтобы убедиться, что все зависимости в вашей системе присутствуют:
cd Python-${VERSION}./configure --enable-optimizations
Опция –enable-optimizations оптимизирует бинарный Python, выполнив несколько тестов. Это замедляет процесс сборки.
Запустите процесс сборки Python 3.8, выполнив:
make -j 4
Измените -j, чтобы соответствовать количеству ядер в вашем процессоре. Вы можете найти номер, набрав nproc.
После завершения процесса сборки установите двоичные файлы Python:
sudo make altinstall
Пожалуйста, не используйте стандарт make install, поскольку он перезапишет системный двоичный файл Python по умолчанию.
Вот и все. Python 3.8 был установлен в вашей системе CentOS, и вы можете начать его использовать. Проверьте это, набрав:
python3.8 --version
Выходные данные должны показать версию Python:
Python 3.8.1
Создание виртуальной среды
Виртуальная среда Python представляет собой автономное дерево каталогов, которое включает установку Python и ряд дополнительных пакетов. Это позволяет вам устанавливать модули Python в изолированном месте для конкретного проекта, а не устанавливать глобально. Таким образом, вам не нужно беспокоиться о влиянии на другие проекты Python.
В этом примере мы создадим новый проект Python 3.8 с именем my_appвнутри домашнего каталога пользователя.
Сначала создайте каталог проекта и переключитесь на него:
mkdir ~/my_app && cd ~/my_app
Изнутри корня проекта выполните следующую команду для создания виртуальной среды с именем my_app_venv:
python3.8 -m venv my_app_venv
Активировать среду:
source my_app_venv/bin/activate
После активации приглашение оболочки будет иметь префикс с именем среды. Начиная с Python 3.4, при создании pip виртуальных сред менеджер пакетов для Python устанавливается по умолчанию.
В виртуальной среде вы можете использовать pipвместо pip3.8 и python вместо python3.8:
python -v
Python 3.8.1
Как только вы закончите работу по деактивации среды, напечатайте, deactivateи вы вернетесь к своей обычной оболочке.
deactivate
Вывод
Мы показали вам, как установить Python 3.8 на вашем компьютере с CentOS 8 и как создать виртуальную среду. Теперь вы можете начать разработку своих проектов на Python 3.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь комментировать ниже.