Python3, установка и подготовка к разработке на пакетной базе Debian stretch

avm

Опубликован:  2018-02-13T04:56:59.745778Z
400

Разработка на Питоне, в частности на Python3, предполагает использование достаточно обширного набора специализированного программного обеспечения. Как подготовить свою систему к разработке на Python3 и какие программы для этого необходимо установить, расскажу в этой статье.

Python3 - современный, интерпретируемый, объектно-ориентированный, универсальный язык программирования с открытым исходным кодом. Он достаточно популярен, не зависит от платформы и может использоваться с операционными системами MS Windows, macOS, Linux. Ниже речь пойдёт о среде разработки и пакетной базе, которую предоставляет Debian stretch.

В Debian stretch Python3 установлен уже из коробки даже в самом минимальном наборе. На снимке экрана ниже для примера показан вывод консоли с версией установленной операционной системы, количеством установленных в этой системе пакетов и версией установленного в этой системе Python3.

debian + python3

Данная система установлена из стандартного образа netinst с минимальным набором программного обеспечения, а именно: ssh-сервер и стандартные системные утилиты, и, как мы видим, Питон третьей версии уже присутствует. Пакетный менеджер этой системы сообщает следующую информацию об установленных пакетах:

sadmin@debian:~$ dpkg -l | grep python3.5
ii  libpython3.5-minimal:amd64    3.5.3-1                        amd64        Minimal subset of the Python language (version 3.5)
ii  libpython3.5-stdlib:amd64     3.5.3-1                        amd64        Interactive high-level object-oriented language (standard library, version 3.5)
ii  python3.5                     3.5.3-1                        amd64        Interactive high-level object-oriented language (version 3.5)
ii  python3.5-minimal             3.5.3-1                        amd64        Minimal subset of the Python language (version 3.5)

Для полноценной разработки этого наверняка будет недостаточно. В дополнение к уже установленным пакетам Debian stretch предлагает довольно обширный набор пакетов Python3, полный список которых можно посмотреть командой:

sadmin@debian:~$ sudo apt-cache search python3

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

  • python3-venv - позволяет создавать обособленные автономные виртуальные окружения;
  • python3-dev - содержит заголовочные файлы и статичную библиотеку Python3, понадобится, когда необходимо установить в виртуальное окружение сторонние пакеты, требующие компиляции кода, вместе с этим пакетом стоит установить и gcc;
  • python3-pip - установщик пакетов Python3, с его помощью можно установить сторонний пакет из PyPI, которого нет в официальном репозитории Debian stretch.

Установить эти пакеты можно командой:

sadmin@debian:~$ sudo apt-get install python3-dev python3-venv python3-pip gcc

Пакеты Python3 в официальном репозитории Debian stretch именуются следующим образом: python3-имя где имя - имя пакета. Например пакет mutagen для Python3 хранится как python3-mutagen и может быть найден пакетным менеджером:

sadmin@debian:~$ sudo apt-cache search mutagen
pypy-mutagen - audio metadata editing library (PyPy)
python-mutagen - audio metadata editing library
python-mutagen-doc - audio metadata editing library - documentation
python3-mutagen - audio metadata editing library (Python 3)

Когда имя пакета известно, его можно установить:

sadmin@debian:~$ sudo apt-get install python3-mutagen
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Предлагаемые пакеты:
  python-mutagen-doc
НОВЫЕ пакеты, которые будут установлены:
  python3-mutagen
обновлено 0, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 128 kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 647 kB.
Пол:1 http://deb.debian.org/debian stretch/main amd64 python3-mutagen all 1.36-1 [128 kB]
Получено 128 kБ за 0с (265 kБ/c)    
Выбор ранее не выбранного пакета python3-mutagen.
(Чтение базы данных … на данный момент установлено 34653 файла и каталога.)
Подготовка к распаковке …/python3-mutagen_1.36-1_all.deb …
Распаковывается python3-mutagen (1.36-1) …
Настраивается пакет python3-mutagen (1.36-1) …

И сразу после установки с пакетом можно работать:

sadmin@debian:~$ python3
Python 3.5.3 (default, Jan 19 2017, 14:11:04) 
[GCC 6.3.0 20170118] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import mutagen
>>> mutagen.version
(1, 36)
>>> 

Если необходимого пакета нет в официальном репозитории, или версия имеющегося не удовлетворяет требованиям задачи, можно установить пакет из PyPI при помощи pip. Если установка производится в систему, то pip должен быть запущен с правами суперпользователя. Например:

sadmin@debian:~$ sudo pip3 install cchardet
Collecting cchardet
  Downloading cchardet-2.1.1-cp35-cp35m-manylinux1_x86_64.whl (201kB)
    100% |████████████████████████████████| 204kB 1.2MB/s 
Installing collected packages: cchardet
Successfully installed cchardet-2.1.1

Важное замечание: Здесь pip3 означает, что используется библиотека Python3, команда будет доступна, только если установлен пакет python3-pip.

В этом случае тоже сразу после установки пакет можно использовать:

sadmin@debian:~$ python3
Python 3.5.3 (default, Jan 19 2017, 14:11:04) 
[GCC 6.3.0 20170118] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cchardet
>>> cchardet.__version__
'2.1.1'
>>> 

Отдельно остановлюсь на создании виртуального окружения. Виртуальное окружение - это изолированное от основной системы Python3-окружение, которое имеет собственный обособленный и независимый от основной системы набор пакетов. Виртуальное окружение Python3 создаётся при помощи простой команды:

sadmin@debian:~$ python3 -m venv venv

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

sadmin@debian:~$ ls -l
итого 4
drwxr-xr-x 6 sadmin sadmin 4096 сен 27 17:46 venv

Активируется виртуальное окружение командой:

sadmin@debian:~$ source venv/bin/activate
(venv) sadmin@debian:~$ 

И в результате активации приглашение командной строки получает префикс с именем виртуального окружения. В активированном виртуальном окружении Питон можно запускать без уточнения версии, в любом случае запустится Питон этого виртуального окружения, в данном случае Python 3.5.3:

(venv) sadmin@debian:~$ python
Python 3.5.3 (default, Jan 19 2017, 14:11:04) 
[GCC 6.3.0 20170118] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

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

(venv) sadmin@debian:~$ pip install --upgrade wheel
Collecting wheel
  Downloading wheel-0.30.0-py2.py3-none-any.whl (49kB)
    100% |████████████████████████████████| 51kB 332kB/s 
Installing collected packages: wheel
Successfully installed wheel-0.30.0

Теперь, если я установлю mutagen в это виртуальное окружение, его версия будет отличаться от версии mutagen установленной в основной системе:

(venv) sadmin@debian:~$ pip install mutagen
Collecting mutagen
  Downloading mutagen-1.38.tar.gz (913kB)
    100% |████████████████████████████████| 921kB 299kB/s 
Building wheels for collected packages: mutagen
  Running setup.py bdist_wheel for mutagen ... done
  Stored in directory: /home/sadmin/.cache/pip/wheels/a0/f3/eb/395cbedfd0714adf58dcf3a9efa5e1e18b13f04a0c6ad25c09
Successfully built mutagen
Installing collected packages: mutagen
Successfully installed mutagen-1.38

Проверим:

(venv) sadmin@debian:~$ python
Python 3.5.3 (default, Jan 19 2017, 14:11:04) 
[GCC 6.3.0 20170118] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import mutagen
>>> mutagen.version
(1, 38)
>>> 

Когда работа с виртуальным окружением закончена, его следует деактивировать:

(venv) sadmin@debian:~$ deactivate
sadmin@debian:~$ 

При деактивации приглашение командной строки снова приходит в норму.

Вот пожалуй и всё. Остаётся определиться с IDE для разработки, но это тема для отдельного разговора. В сущности я получил готовую к разработке на Python3 систему, можно приступать непосредственно к разработке...

 
Комментарии: