Як встановити Python 3.12 на Ubuntu 24.04|22.04|20.04
Ласкаво просимо до сьогоднішньої статті про те, як встановити та налаштувати Python 3.12 на системі Ubuntu 22.04 / Ubuntu 20.04 / Ubuntu 18.04 Linux. Наша інсталяція виконується з вихідного коду, щоб переконатися, що ми створюємо останній випуск мови програмування Python 3.12. Python — це проста у вивченні та освоєнні, інтерпретована мова програмування, відома простою та добре читабельною. Перший реліз Python відбувся в 1991 році, і наразі він має велику та активну спільноту учасників і розробників.
На момент оновлення цієї статті, Python 3.12.x є найновішим основним випуском мови програмування Python. Цей випуск містить багато нових функцій та оптимізацій. Деякі з нових функцій включають наступне.
- Підтримка протоколу буфера в коді Python (PEP 688).
- Більш гнучкий розбір f-струн, що дозволяє багато речей, які раніше були заборонені (PEP 701).
- Новий API налагодження/профілювання (PEP 669).
- Ще більше покращених повідомлень про помилки. Більше винятків, потенційно спричинених помилками, тепер роблять пропозиції користувачеві.
- Підтримка ізольованих субінтерпретаторів з окремими глобальними замками інтерпретатора (PEP 684).
- Підтримка профілювальника Linux
perf
щоб повідомляти назви функцій Python у трасуванні. - Багато великих і малих покращень продуктивності (наприклад, PEP 709 і підтримка двійкового оптимізатора BOLT), що забезпечують приблизно 5% загальне підвищення продуктивності.
Встановлення залежностей
Перш ніж ми почнемо установку, давайте оновимо індекс пакетів ОС.
sudo apt update
Встановіть усі залежності, необхідні для створення та запуску Python 3.12 на Ubuntu.
sudo apt install wget libncurses5-dev build-essential zlib1g-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev libbz2-dev pkg-config -y
Завантажте та встановіть Python 3.12
Після встановлення залежностей пакетів, завантажте найновіший доступний архів Python 3.12 gzipp зі сторінки офіційного випуску Python. Ми можемо зробити це за допомогою команди.wget
wget https://www.python.org/ftp/python/3.12.2/Python-3.12.2.tgz
Розпакуйте завантажений архівний файл після його завантаження.
tar -xf Python-3.12.*.tgz
Змініть на створений каталог після вилучення файлу.
cd Python-3.12.*/
Запустіть конфігурації Python перед встановленням.
./configure --enable-optimizations
Приклад виведення на виконання.
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for Python interpreter freezing... ./_bootstrap_python
checking for python3.12... no
checking for python3.12... no
checking for python3.11... no
checking for python3.10... python3.10
checking Python for regen version... Python 3.10.12
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for --enable-universalsdk... no
checking for --with-universal-archs... no
checking MACHDEP... "linux"
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for a sed that does not truncate output... /usr/bin/sed
checking for egrep... /usr/bin/grep -E
checking for CC compiler name... gcc
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
.....
configure: creating ./config.status
config.status: creating Makefile.pre
config.status: creating Misc/python.pc
config.status: creating Misc/python-embed.pc
config.status: creating Misc/python-config.sh
config.status: creating Modules/Setup.bootstrap
config.status: creating Modules/Setup.stdlib
config.status: creating Modules/ld_so_aix
config.status: creating pyconfig.h
configure: creating Modules/Setup.local
configure: creating Makefile
Давайте тепер створимо Python 3.12 на машині Ubuntu Linux. Параметр -j використовується для надання кількості ядер, доступних у системі для процесу збирання:
make -j $(nproc)
Ось вихідні дані виконання моєї команди.
...
if test $? -ne 0 ; then \
echo "generate-posix-vars failed" ; \
rm -f ./pybuilddir.txt ; \
exit 1 ; \
fi
./python -E -c 'import sys ; from sysconfig import get_platform ; print("%s-%d.%d" % (get_platform(), *sys.version_info[:2]))' >platform
The necessary bits to build these optional modules were not found:
_dbm _lzma _tkinter
_uuid
To find the necessary bits, look in configure.ac and config.log.
Checked 111 modules (31 built-in, 75 shared, 1 n/a on linux-x86_64, 0 disabled, 4 missing, 0 failed on import)
make[1]: Leaving directory '/root/Python-3.12.2'
Після того, як збірка буде виконана. Після цього інсталяцію можна ініціювати, виконавши наступні команди.
sudo make altinstall
Вихід виконання:
.......
Creating directory /usr/local/share/man/man1
/usr/bin/install -c -m 644 ./Misc/python.man \
/usr/local/share/man/man1/python3.12.1
if test "xupgrade" != "xno" ; then \
case upgrade in \
upgrade) ensurepip="--altinstall --upgrade" ;; \
install|*) ensurepip="--altinstall" ;; \
esac; \
./python -E -m ensurepip \
$ensurepip --root=/ ; \
fi
Looking in links: /tmp/tmpdr48x63t
Processing /tmp/tmpdr48x63t/pip-24.0-py3-none-any.whl
Installing collected packages: pip
Successfully installed pip-24.0
Після завершення перевірте версію:
$ python3.12 --version
Python 3.12.2
Встановіть розширення / модулі Python
У Python модулі надають додаткову функціональність, недоступну в Python. Модулі сприяють повторному використанню коду та загальній співпраці між розробниками.
Менеджер пакетів Python (PIP) використовується для встановлення сторонніх модулів. Ми можемо встановити спеціальний Pip для Python версії 3.12.
curl -sS https://bootstrap.pypa.io/get-pip.py | python3.12
Підтвердьте встановлення Python Pip за допомогою наступних команд.
$ pip3.12 -V
pip 24.0 from /usr/local/lib/python3.12/site-packages/pip (python 3.12)
Встановлення модуля може бути виконано за допомогою синтаксису команди, показаного тут.
sudo pip3.12 install module-name
Ось приклад по установці модуля.awscli
$ sudo pip3.12 install awscli
...
Downloading awscli-1.32.49-py3-none-any.whl (4.4 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.4/4.4 MB 31.3 MB/s eta 0:00:00
Downloading botocore-1.34.49-py3-none-any.whl (12.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 12.0/12.0 MB 49.0 MB/s eta 0:00:00
Downloading PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (724 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 725.0/725.0 kB 19.5 MB/s eta 0:00:00
Downloading s3transfer-0.10.0-py3-none-any.whl (82 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 82.1/82.1 kB 10.3 MB/s eta 0:00:00
Downloading jmespath-1.0.1-py3-none-any.whl (20 kB)
Downloading pyasn1-0.5.1-py2.py3-none-any.whl (84 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 84.9/84.9 kB 12.9 MB/s eta 0:00:00
Downloading python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 247.7/247.7 kB 30.9 MB/s eta 0:00:00
Downloading urllib3-2.0.7-py3-none-any.whl (124 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 124.2/124.2 kB 22.0 MB/s eta 0:00:00
Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Installing collected packages: urllib3, six, PyYAML, pyasn1, jmespath, docutils, colorama, rsa, python-dateutil, botocore, s3transfer, awscli
Successfully installed PyYAML-6.0.1 awscli-1.32.49 botocore-1.34.49 colorama-0.4.4 docutils-0.16 jmespath-1.0.1 pyasn1-0.5.1 python-dateutil-2.8.2 rsa-4.7.2 s3transfer-0.10.0 six-1.16.0 urllib3-2.0.7
Перерахувати всі встановлені модулі можна за допомогою команди;
$ pip3.12 list
Package Version
--------------- -------
awscli 1.32.49
botocore 1.34.49
colorama 0.4.4
docutils 0.16
jmespath 1.0.1
pip 24.0
pyasn1 0.5.1
python-dateutil 2.8.2
PyYAML 6.0.1
rsa 4.7.2
s3transfer 0.10.0
setuptools 69.1.1
six 1.16.0
urllib3 2.0.7
wheel 0.42.0
...
Висновок
Python є основою для побудови міцного фундаменту на розумінні концепцій програмування і, безсумнівно, відкриє двері для різноманітних кар’єрних можливостей, якщо ви добре в ньому розбираєтеся. Встановлення Python є відправною точкою для створення проектів, які вирішують різні потреби та потреби користувачів.