Как скачать и установить python 3 на ubuntu 18.04 (linux)

JIT-компиляция Python

JIT-компиляция не позволяет скрывать исходники или создавать автономный исполняемый файл, но дает возможность значительно ускорить выполнение программы.

PyPy

PyPy — интерпретатор языка программирования Python 2.7 и Python 3.7. Он написан на RPython и содержит:

  • компилятор байт-кода, отвечающий за создание объектов кода Python из исходного кода пользовательского приложения;

  • оценщик байт-кода, ответственный за интерпретацию объектов кода Python;

  • стандартное объектное пространство, отвечающее за создание и управление объектами Python, видимыми приложением.

PyPy поддерживает сотни библиотек Python, включая NumPy.

Основные особенности (сравнение с CPython):

  • Скорость. При выполнении длительно выполняющихся программ, когда значительная часть времени тратится на выполнение кода Python, PyPy может значительно ускорить ваш код.

  • Использование памяти. Программы Python, требующие много памяти (несколько сотен Мб или более), могут занимать меньше места, чем в CPython. Однако это не всегда так, поскольку зависит от множества деталей. Также базовый уровень потребления оперативной памяти выше, чем у CPython.

Скачать PyPy можно с здесь. После скачивания PyPy готов к запуску после распаковки архива. Если необходимо сделать PyPy доступным для всей системы, достаточно поместить символическую ссылку на исполняемый файл pypy в /usr/local/bin. Также можно поставить с помощью pyenv.

PyPy работает на Mac, Linux (не все дистрибутивы) или Windows.

Для запуска кода с помощью PyPy вместо команды python3 (как c помощью CPython) достаточно воспользоваться командой pypy3:

Pyston

Pyston — это форк CPython 3.8.8 с дополнительной оптимизацией производительности. В настоящее время он поддерживает установку только из исходников. Или с помощью pyenv.

В Pyston поддерживаются все возможности CPython, в том числе C API для разработки расширений на языке Си. Среди основных отличий Pyston от CPython помимо общих оптимизаций выделяется использование DynASM JIT и inline-кэширования. 

Бенчмарк

Так как одной из целей является ускорение, необходимо оценить, насколько быстро работает скомпилированный код. В качестве бенчмарка будем использовать pyperfomance. К сожалению, pyperfomance не подошел для Cython и Pythran, потому что не позволяет визуализировать все возможности языка. Ускорения для Cython без модификации кода получить не удалось, а Pythran не умеет в пользовательские классы. Для них воспользуемся вычислением числа пи:

Эксперименты будем проводить на процессоре Intel Core i7 10510U. На CPython 3.9.7 время вычисления числа пи до 100.000.000 знака заняло 5.82 секунды.

Обновить Python

Рассмотрим теперь тему с обновлением python в ubuntu. Тут может быть несколько вариантов.

  1. Обновить с помощью apt до последней версии, находящейся в репозитории системы.
  2. Использовать для обновления python сторонний репозиторий.
  3. Собрать самую свежую версию из исходников.

Первый и третий варианты мы уже рассмотрели ранее. Обновление python до последней версии ничем не будет отличаться от чистой установки. В случае с пакетным менеджером apt, вам просто вместо install нужно будет указать upgrade.

sudo apt upgrade python3

Если в подключенных репозиториях ubuntu будет свежая версия python, то будет обновление до нее. Если нет, то ничего не произойдет. Останется текущая версия.

Обычное самые свежие версии python есть в отдельном репозитории deadsnakes. Подключим его:

sudo add-apt-repository ppa:deadsnakes/ppa

А теперь попробуем поставить самую последнюю версию python из этого репозитория.

sudo apt install python3.9

В итоге мы обновились до самой свежей версии python 3.9.1. При этом нам не пришлось ее собирать из исходников. Мы воспользовались установкой через пакетный менеджер, а значит нам будет проще обновляться в дальнейшем и поддерживать актуальную версию. Обновления будут приходить автоматически через apt.

Скачать и установить Python 2.7.9

Чтобы установить Python из скачанного архива нужен компилятор

C

например

gcc

wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz

—2021-01-11 12:17:43— https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz
Resolving www.python.org (www.python.org)… 151.101.84.223, 2a04:4e42:14::223
Connecting to www.python.org (www.python.org)|151.101.84.223|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 16657930 (16M) [application/octet-stream]
Saving to: ‘Python-2.7.9.tgz’

Python-2.7.9.tgz 100% 15.89M 3.63MB/s in 4.4s

2021-01-11 12:17:48 (3.61 MB/s) — ‘Python-2.7.9.tgz’ saved [16657930/16657930]

Распаковать архив можно командой

tar xvzf Python-2.7.9.tgz

Затем нужно перейти в распакованную директорию и выполнить

configure make install

cd Python-2.7.9

./configure

make

sudo make install

2.1. Getting and installing the latest version of Python¶

2.1.1. On Linux

Python comes preinstalled on most Linux distributions, and is available as a
package on all others. However there are certain features you might want to use
that are not available on your distro’s package. You can easily compile the
latest version
of Python from source.

In the event that Python doesn’t come preinstalled and isn’t in the repositories as
well, you can easily make packages for your own distro. Have a look at the
following links:

See also

https://www.debian.org/doc/manuals/maint-guide/first.en.html

for Debian users

https://en.opensuse.org/Portal:Packaging

for OpenSuse users

https://docs-old.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch-creating-rpms.html

for Fedora users

http://www.slackbook.org/html/package-management-making-packages.html

for Slackware users

2.1.2. On FreeBSD and OpenBSD

  • FreeBSD users, to add the package use:

    pkg install python3
    
  • OpenBSD users, to add the package use:

    pkg_add -r python
    
    pkg_add ftp://ftp.openbsd.org/pub/OpenBSD/4.2/packages/<insert your architecture here>/python-<version>.tgz
    

    For example i386 users get the 2.5.1 version of Python using:

    pkg_add ftp://ftp.openbsd.org/pub/OpenBSD/4.2/packages/i386/python-2.5.1p2.tgz
    

Как запускать проекты Python в Windows

После установки Python вы сможете использовать его для запуска существующего программного обеспечения Python или начать разработку собственных проектов Python. Вам понадобится Python IDE, чтобы начать кодирование ваших собственных проектов Python, таких как предварительно включенный IDLE , который вы можете запустить из меню Пуск Windows.

Чтобы запустить сам код Python, вам нужно использовать интерпретатор Python. Это программное обеспечение, которое преобразует код Python и выполняет его соответствующим образом на вашем ПК с Windows. Вам нужно будет открыть командную строку или окно PowerShell, чтобы иметь возможность использовать интерпретатор.

  • Чтобы открыть окно PowerShell, щелкните правой кнопкой мыши меню «Пуск» Windows и нажмите Windows PowerShell, чтобы начать.
  • Если вы добавили Python в переменную Windows PATH во время установки, вы сможете запустить интерпретатор, набрав python или py в окне терминала. Если вы этого не сделали, вам нужно будет использовать полный путь к интерпретатору Python, чтобы иметь возможность его запустить.
  • Интерпретатор позволяет вам набирать код Python и запускать его вручную. Например, print («Hello World») вернет Hello World, напечатанный интерпретатором.
  • Это отлично подходит для тестирования и изучения Python, но интерпретатор Python также используется для запуска более длинных файлов с кодом Python, а также скомпилированного программного обеспечения Python.Вы можете сделать это, набрав python filename.py или py filename.py в окне PowerShell, заменив filename.py вашим файлом Python. Используйте эквивалент файла filename.pyc для запуска скомпилированных файлов Python с расширением PYC.
  • Если вы ничего не знаете, когда используете интерпретатор Python, введите , чтобы загрузить справочную утилиту. Вы можете найти список доступных модулей Python, набрав модули , темы, набрав темы , ключевые слова, набрав ключевые слова , и символы, набрав символы . Как только вы закончите, введите , чтобы выйти из утилиты помощи и вернуться к интерпретатору.
  • Чтобы выйти из интерпретатора Python и вернуться в стандартное окно PowerShell, введите и нажмите клавишу ввода.

Установка с помощью пакетного менеджера

Эволюция методов установки и управления программными пакетами со временем дошла до использования пакетных менеджеров, плотно интегрированных с репозиториями. В репозиториях содержатся упакованные файлы программ с данными об их зависимостях. После установки к операционной системе уже подключены системные репозитории: с их помощью можно обновлять ОС и устанавливать программные пакеты, которые были адаптированы и оптимизированы для работы с этой версией операционной системы.

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

Скриншот №1. Обновление данных о версиях и зависимостях в репозитории

Если необходимо уточнить название пакета, который требуется установить — ищем в локальном кэше менеджер по ключевым словам, например, web server:

В результате получим большой перечень пакетов, где данное ключевое слово присутствует в описании:

Скриншот №2. Поиск по ключевым словам

Выбираем нужный нам пакет — в данном случае это apache2, и устанавливаем его:

Пакетный менеджер проверяет зависимости, версии, сравнивает их с уже установленными через apt-get пакетами, после чего выдает список необходимых для установки компонентов и запрашивает разрешение на продолжение операции:

Скриншот №3. Установка пакета

Нажимаем y и дожидаемся окончания установки.

Часто используемые команды пакетного менеджера:

  • apt-get update — обновление информации о пакетах и зависимостях в подключенных репозиториях;
  • apt-get upgrade — обновление всех установленных пакетов до актуальной версии, имеющейся в репозитории;
  • apt-get install имя_пакета — установка пакета;
  • apt-get remove имя_пакета — удаление пакета;
  • apt-get download имя_пакета — скачать deb-пакет в локальную папку;
  • apt-cache search ключевые слова — поиск пакета по ключевым словам;
  • apt-cache show имя_пакета — показать информацию о пакете;
  • apt-cache depends имя_пакета — показать от каких компонентов зависит данный пакет;
  • apt-cache rdepends имя_пакета — показать какие компоненты зависят от пакета;
  • apt-mark hold имя_пакета — зафиксировать текущую версию пакета, прекратить обновление пакета;
  • apt-mark unhold имя_пакета — разрешить обновление пакета.

Переключить версию python в Unix/Linux

Сейчас по умолчанию, во многих Unix/Linux ОС используется питон 2.6. Чтобы проверить какая версия питона используется в системе, выполните:

$ python -V

Python 2.6

Выполним установку python:

Так же, посмотрим:

$ ls -al /usr/local/bin/python*

Получаем:

lrwxrwxrwx. 1 root root 7 Apr 11 10:38 /usr/local/bin/python -> python2
lrwxrwxrwx. 1 root root 9 Apr 11 10:38 /usr/local/bin/python2 -> python2.7
-rwxr-xr-x. 1 root root 6294753 Apr 11 10:37 /usr/local/bin/python2.7
-rwxr-xr-x. 1 root root 1687 Apr 11 10:38 /usr/local/bin/python2.7-config
lrwxrwxrwx. 1 root root 16 Apr 11 10:38 /usr/local/bin/python2-config -> python2.7-config
lrwxrwxrwx. 1 root root 9 Apr 11 11:10 /usr/local/bin/python3 -> python3.6
-rwxr-xr-x. 2 root root 9961651 Apr 11 11:08 /usr/local/bin/python3.6
lrwxrwxrwx. 1 root root 17 Apr 11 11:10 /usr/local/bin/python3.6-config -> python3.6m-config
-rwxr-xr-x. 2 root root 9961651 Apr 11 11:08 /usr/local/bin/python3.6m
-rwxr-xr-x. 1 root root 3083 Apr 11 11:10 /usr/local/bin/python3.6m-config
lrwxrwxrwx. 1 root root 16 Apr 11 11:10 /usr/local/bin/python3-config -> python3.6-config
lrwxrwxrwx. 1 root root 14 Apr 11 10:38 /usr/local/bin/python-config -> python2-config

И так, чтобы переключить версию питона, я буду использовать несколько методов.

-===СПОСОБ 1 — использование алиаса===-

Один из самых простых способов — это использовать алиасы. Открываем файл:

# vim ~/.bashrc

И, прописываем сам алиас на нужную версию питона:

alias python='/usr/local/bin/python3.6'

Чтобы изменения вступили в силу, выполняем:

$ . ~/.bashrc

После этого, можно проверять версию:

$ python --version
Python 3.6.1

Видно что все отлично работает.

-===СПОСОБ 2 — использование alternatives===-

Чтобы изменить версию python глобально, я воспользуюсь alternatives утилитой:

# alternatives --list | grep -i python

Если вывода не будет, — это будет означать, что python alternative еще не сконфигурирована. Чтобы это сделать, выполните ( взято в качестве примера):

# alternatives --install /usr/bin/python python /usr/local/bin/python3.6 2
# alternatives --install /usr/bin/python python /usr/local/bin/python2.7 1

Вышеупомянутые команды будут указывать команде alternatives для создания соответствующих символических ссылок, которые будут использоваться при выполнении команды python. Я назначил python3.6 более высокий приоритет ( цифра 2), — это означает, что если не выбрана альтернатива для python, то по умолчанию будет использоваться python3.6. После выполнения вышеуказанных команд ваша версия python должна измениться на python3.6 из-за ее более высокого приоритета.

Проверяем:

# python -V

Python 3.6.1

Для переключения между вышеперечисленными версиями python теперь достаточно просто:

# alternatives --config python

Чтобы удалить питон с alternatives, используем:

# update-alternatives --remove python /usr/local/bin/python3.6

Как-то так! На этому у меня все, статья «Переключить версию python в Unix/Linux» завершена.

Синтаксис и опции apt

Синтаксис команды apt очень простой и похож на другие команды Linux:

$ apt опции команда параметры_команды

Опции указывают общее поведение утилиты, команда — действие, которое надо выполнить, а в параметрах команды обычно передается имя пакета, с которым следует работать, например, установить или удалить. Вот основные опции утилиты:

  • -v, —version — выводит версию утилиты;
  • -h, —help — выводит справку по использованию утилиты;
  • -y, —yes — автоматически отвечать «да» на все возникающие вопросы;
  • —assume-no — автоматически отвечать «нет» на все возникающие вопросы;
  • -d, —download-only — только скачать пакеты и больше ничего не делать;
  • -f, —fix-broken — исправить недостающие зависимости;
  • —no-download — ничего не загружать, использовать только пакеты из кэша;
  • -s, —simulate — режим симуляции, никакие операции не выполняются, только выводится информация на экран;
  • —allow-unauthenticated — позволяет установить пакеты, из репозиториев, для которых нет GPG подписи;
  • —no-install-recommends — не устанавливать рекомендованные пакеты, по умолчанию будут установлены;
  • -m, —ignore-missing — игнорировать пакеты, которые существует;
  • -q, —quiet — выводить минимум информации, не показывать прогресс бар;
  • -V, —verbose-versions — показывать полные версии обновленных пакетов;
  • —only-upgrade — не устанавливать новые пакеты, только обновлять;
  • —allow-downgrades — разрешить откатывать версию пакетов;
  • —reinstall — переустановить пакет если он уже установлен;

А теперь давайте пройдёмся по командам apt, которые вы можете использовать:

  • install — установить пакет;
  • remove — удалить пакет, конфигурационные файлы, которые были изменены в вашей системе удалены не будут;
  • purge — полностью удалить пакет, вместе со всеми его конфигурационными файлами;
  • autoremove — очистить ненужные пакеты;
  • autoclean — очистить кэш пакетов;
  • update — обновить списки пакетов из репозиториев;
  • upgrade — обновить версию пакета до последней, если пакет не указан будут обновлены все пакеты;
  • full-upgrade — полное обновление системы, включая удаление несовместимых или больше ненужных пакетов;
  • list — список установленных пакетов;
  • search — поиск пакетов;
  • show — посмотреть информацию о пакете;
  • download — скачать пакет в текущую папку;
  • edit-sources — открыть с настройками репозиториев в текстовом редакторе.
  • source — скачать исходный код пакета в текущую папку;
  • build-dep — установить зависимости необходимые для сборки выбранного пакета;

Дальше рассмотрим несколько примеров работы с apt, которые пригодятся как начинающим, так и более опытным пользователям.

Установка на Linux (из исходников)

Установка через исходники не так сложна, как кажется изначально. Она состоит из 4 шагов.

Шаг 1Прежде чем начать устанавливать Python 3.8, необходимо установить необходимые библиотеки для компиляции Python следующими командами:

Шаг 2 Скачать архив Python 3.8 в любое место (например в /opt):

Доступные версии можно выбрать тут.

Разархивируем скачанный архив:

Шаг 3 Осталось скомпилировать исходники. Для этого выполним команды:

altinstall используется для предотвращения замены бинарного файла python в папке /usr/bin

Шаг 4 Проверить установку можно командой:

Чтобы скачанный архив Python-3.8.1.tgz не занимал лишнее место, его можно удалить:

Пара слов о mypyc

Если вы уже бросились компилировать ваши пакеты, то стоит задержаться на пару минут, чтобы дочитать этот абзац до конца. Главным недостатком mypyc пока остается стабильность: он все еще в альфе, точнее, сейчас это вообще не самостоятельный проект, а часть mypy. Собственно он и создавался специально под задачу увеличения производительности mypy и для этой цели он уже более года как стабилен. Но как общее решение по компиляции любого python-кода, он еще сыроват, о чем авторы предупреждают на странице проекта.

Также существуют принципиальные ограничения, накладываемые на компилируемый код или на код, взаимодействующий со скомпилированным:

  • Принудительная проверка типов в рантайме;

  • В компилируемом коде запрещается monkey patching;

  • Mypy хранит классы в С структурах для увеличения скорости доступа к атрибутам, но это приводит к проблемам совместимости.

Эти ограничения носят принципиальный характер и являются следствием архитектуры компилятора. Но из них проистекают другие ограничения, например, невозможность использования модуля стандартной библиотеки abc. Помимо этого, есть большая порция недоработок и багов. Чаще всего они приводят к тому, что код gcc отказывается компилировать полученный С код, при этом, чтобы понять настоящую причину ошибки, приходится прокручивать в голове непростую процедуру реверс инжиниринга. Пока резутльт таков, что при компиляции одного из моих проектов, без проблем компилировалось примерно 20 % модулей, зато каких либо проблем при работе с уже скомпилированными модулями я не заметил.

Тем не менее, большая часть улучшений в их Roadmap закрыта, и проект готовится к публичному релизу.

Сравнение трансляторов Python

В качестве бенчмарка будет использоваться пакет PyStone, адаптация C-программы, которую сделал Гвидо ван Россум, создатель Python (сама C-программа была переводом Ада-программы). Я нашел версию бенчмарка от Кристофера Арндта, которая способна тестировать Python 3. Чтобы получить представление о базовой производительности, оценим производительность CPython (то есть стандартного Python) с PyStone.

$ python2 pystone.py 1000000
Pystone(1.1.1) time for 1000000 passes = 3.61152
This machine benchmarks at 276892 pystones/second

$ python3 pystone.py 1000000
Pystone(1.1.1) time for 1000000 passes = 4.07254
This machine benchmarks at 245547 pystones/second

Как видите, между производительностью теста в Python 2 и 3 есть существенная разница (чем больше Pystones в секунду, тем лучше). В следующих разбивках все компиляторы используют Python 3.

Nuitka

Уже в процессе работы над статьей, я узнал про еще один проект с аналогичными целями. Механизм работы Nuitka сильно напоминает описанный выше. Разница заключается в том, что Nuitka компилирует Python модуль в С++ код, который также собирается в СPython Extension. Дополнительно существует возможность собрать весь проект в один исполняемый файл, тогда уже сам CPython подключается к проекту как динамическая библиотека libpython.

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

Установка pip/setuptools/wheel в Unix/Linux

Приведу установку на различные Unix/Linux ОС.

Установка pip/setuptools/wheel в Fedora

Чтобы установить Python 2 на Fedora 21, используйте следующие команды.

Для начала обновим тулзы:

Выполняем установку:

Чтобы установить Python 3 на Fedora 21, используйте следующие команды:

Чтобы установить Python 2 на Fedora 22, используйте следующие команды. 

Для начала обновим тулзы:

Выполняем установку:

Чтобы установить Python 3 на Fedora 22, используйте следующие команды:

Чтобы получить новые версии pip, setuptools и wheel для Python 2, вы можете включить PyPA Copr репозиторий:

И после чего, выполнить:

Установка pip/setuptools/wheel в CentOS/RHEL

Чтобы установить pip и wheel, существует два варианта:

1. Включите репозиторий EPEL, используя эти инструкции:

Как включить EPEL репозиторий на CentOS

После чего, вы можете установить pip следующим образом:

На EPEL 7 (но не EPEL 6), вы можете установить wheel следующим образом:

2. Включите репозиторий PyPA Copr репозиторий:

CentOS 6:

CentOS 7:

После чего, вы можете установить pip следующим образом:

Чтобы обновить setuptools, запустите:

Чтобы установить Python 3.4 на CentOS7/RHEL7, используйте:

Чтобы установить Python 2:

Чтобы установить Python 3:

Чтобы установить Python:

Чтобы установить Python 3:

Чтобы установить Python 2:

Чтобы установить Python 3:

Установка pip/setuptools/wheel в Mac OS X

Добавляем HOMEBREW на Mac OS X ( устанавливаем его):

Установка HOMEBREW на Mac OS X

После чего, можно приступать к установке:

Или, чтобы установить python 3:

Очень простая установка:

Вот и все.

Установка setuptools с исходного кода

Скачиваем архив:

Выполняем распаковку:

Смотрим где лежит нужный питон (у меня это 3.4):

И выполняем сборку:

ИЛИ, все в одной строке:

Как-то так)

Установка easy_install с исходного кода

easy_install позволяет установить pip и его компоненты.

Скачиваем архив:

Выполняем распаковку:

Смотрим где лежит нужный питон (у меня это 3.4):

И выполняем сборку:

Установка pyenv в Unix/Linux

pyenv — замечательный инструмент для управления несколькими версиями Python. Даже если у вас уже установлен Python в вашей системе, стоит установить pyenv, чтобы вы могли легко опробовать новые языковые функции или помочь внести свой вклад в проект, который находится на другой версии Python.

Рекомендуемое чтиво:

Установка virtualenv + virtualenvwrapper в Unix/Linux

И так, начнем установку…

Подключаем EPEL репозиторий:

Установка EPEL

Далее, стоит установить следующие пакеты:

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

После установки, стоит настроить и потом, можно будет юзать данную тулу.

Установка pyenv в Debian/Ubuntu

Стоит установить следующие пакеты:

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

После установки, стоит настроить и потом, можно будет юзать данную тулу.

Установка pyenv в MacOS

Ставим homebrew, статью можно взять тут:

Установка homebrew на Mac OS X

Выполним поиск пакета:

Чтобы поставить данное ПО, выполняем:

Перейдем к настройке.

Настройка pyenv в Unix/Linux

Открываем файл:

Прописываем:

Просто добавьте этот код в конец вашего ~/ .bashrc и затем загрузите ваш профиль, чтобы загрузить эти дополнения:

Для RPM’s ОС:

Или:

Для DEB’s ОС:

Для MacOS:

Можно уже юзать!

Использование pyenv в Unix/Linux

Для того, чтобы посмотреть какие версии python используется на данный момент, имеется команда:

Для установки какой-либо версии, используем:

Смотрим что имеется в системе:

Чтобы переключится на нужную версию, используем:

Так же, можно будет использовать:

Я пока что буду использовать:

Для глобального использования, можно выставить тоже нужную(ые) версию(и):

Можно выставить конкретную версию питона для shell оболочки, например:

Как это выглядит на картинке:

Создадим песочницу:

Или:

Смотрим песочницы:

Сейчас, я выставлю нужные мне версии:

Смотрим версию питона:

Смотрим где находится питон:

И:

Для получения списка команд, множно использовать:

Получить помощь можно так:

Или, для какой-то конкретной команды:

Т.е для активации созданной среды, используем:

Для диактивации, следующая команда:

Для удаления версии питона с ОС, используем:

Для обновления pyenv, имеется конманда:

Для удаления, используйте:

ЗАМЕЧАНИЕ: По умолчанию, $PYENV_ROOT — ~/.pyenv.

Так же, стоит удалить следующие строки с ~/.bashrc:

Вот и все, статья «Установка pyenv в Unix/Linux» завершена.

Обновление Python

Процесс обновления описан на примере актуальной на момент написания статьи версии Python 3.9.1. На странице загрузок Python всегда можно посмотреть номер свежего релиза и заменить ссылки на скачивание и распаковку архива в приведенных ниже командах.

sudo systemctl stop home-assistant@homeassistant.service

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

sudo apt-get install build-essential tk-dev libncurses5-dev libncursesw5-dev libreadline6-dev libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev libxslt-dev libxml2-dev libjpeg-dev zlib1g-dev

Скачаем и распакуем архив с Python 3.9.1:

wget https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tgz
tar xzvf Python-3.9.1.tgz
cd Python-3.9.1

Соберем его из исходников и запустим установку:

./configure --enable-optimizations
make -j 4
sudo make install

Процесс сборки занимает около 12 минут на Raspberry Pi 4, поэтому придется запастись терпением.

После завершения установки можно проверить, что Python действительно обновился путем выполнения двух команд:

python3 --version
pip3 --version

И если в консоли появится такие ответы, то процесс обновления прошел успешно:

Теперь обновим менеджер пакетов pip:

sudo /srv/homeassistant/bin/python3.9 -m pip install --upgrade pip
sudo python3.9 -m pip install --upgrade pip

В случае если после обновления Python при запуске Home Assistant появится ошибка с доступностью библиотеки libffi.so.7 можно создать симлинк с libffi.so.7 на нее:

sudo ln -s /usr/lib/arm-linux-gnueabihf/libffi.so.6 /usr/lib/arm-linux-gnueabihf/libffi.so.7

Если симлинк не создается, то значит в вашей системе libffi.so.6 находится по другому пути. Найдите корректный путь через поиск по названиям файлов:

find /usr/lib -name "libffi.so*"

Вариант 2 — установить Python 3.10 в Ubuntu 20.04 | 18.04 из исходного кода.

Другой альтернативой установке Python 3.10 в вашей системе Ubuntu 20.04 | 18.04 является его сборка из исходного кода. При использовании этого метода установки вам будет гарантирована последняя версия Python, хотя вы не сможете получать постоянные обновления, исправления ошибок и обновления безопасности через диспетчер пакетов APT .

Установите необходимые зависимости для сборки Python 3.10 из исходного кода.

Теперь продолжите и загрузите последнюю версию Python с официальной страницы выпуска Python . Или скопируйте ссылку для загрузки gzip-архиватора Python 3.10 и используйте Wget, чтобы вытащить его, как показано ниже.

Когда этот файл будет загружен, продолжайте и извлекайте его.

Теперь перейдите в извлеченный каталог и запустите сценарий, чтобы проверить необходимые зависимости. Флаг — оптимизирует двоичный файл, выполняя несколько тестов..

Вывод:

Теперь запустите процесс сборки Python 3.10, как показано ниже.

Помните, что аргумент -j должен соответствовать количеству ядер в вашей системе, чтобы процесс был быстрее. Проверьте количество ядер в вашей системе с помощью команды . В этом случае у меня в системе 2 ядра.

Пример вывода:

Завершив процесс сборки, введите команду make ниже, чтобы установить Python 3.10 в Ubuntu 20.04 | 18.04.

Здесь используется вместо того, чтобы сохранить двоичный путь Python по умолчанию в /usr/bin/python .

Пример вывода:

Проверьте вашу установку.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: