Как установить Python и pip на Ubuntu
Пайтон — популярный язык программирования, который в большинстве дистрибутивов Linux установлен по умолчанию. У него есть несколько версий, которые имеют сильные различия между собой. Так что я расскажу, как установить различные версии Python и пакетного менеджера pip к нему в Ubuntu.
Содержание
Проверка версии Python
По умолчанию минимальная установка Ubuntu уже включает в себя пакет Python. Посмотреть его версию можно с помощью пакетного менеджера.
sudo dpkg -l | grep python
Так же, если пакет установлен, то узнать версию Python можно через него самого.
sudo python3 -V Python 3.8.5
В данном случае в ubuntu установлена версия 3.8.5. Обычно 3-я версия пайтона в системе именуется python3, а вторая просто python.
Кстати, а вы знаете, чем Ubuntu Server принципиально отличается от других Linux систем? Читайте мой обзор и сравнение — обзор ubuntu server и сравнение.
Установка Python
Может так быть, что в системе вообще не установлен python. Например, у каких-то провайдеров в их собственных кастомных образах. Они могут вырезать из них вообще все, что по их мнению там лишнее, чтобы уменьшить размер дистрибутива. В таком случае, установить python в ubuntu вам придется самостоятельно.
Рассмотрим сначала момент с установкой самой последней версии python. Сделать это проще всего с помощью пакетного менеджера apt:
sudo apt install python3
Так вы установите самую свежую версию 3-го пайтона, которая присутствует в репозиториях дистрибутива. Чаще всего там будет достаточно свежая версия, так как данный язык программирования и среда исполнения очень распространены.
Установка из исходников
Если вам нужно что-то совсем свежее, то можно скомпилировать и установить python из исходников. Для этого идем на сайт python.org и переходим в раздел Downloads. Находим там самую свежую версию, скачиваем исходники и распаковываем.
wget https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tgz tar -zxvf Python-3.9.1.tgz
Для установки python из исходников, нам понадобятся дополнительные системные пакеты. Устанавливаем их:
sudo apt 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 libffi-dev
Теперь можно приступить к сборке:
cd Python-3.9.1 ./configure make -j 4 sudo make altinstall
Проверяем установленную из исходников версию:
python3.9 -V Python 3.9.1
Если у вас уже присутствуют другие версии пайтона в системе, то читайте ниже, как среди них выбрать ту, что будет использоваться по умолчанию.
Установка pip в Ubuntu
Вместе с python обычно используется пакетный менеджер для него. Давайте рассмотрим, как выглядит установка pip в Ubuntu. В зависимости от версии пайтона, устанавливается подходящая версия pip. Тут так же как и с самим интерпретатором версия пакета будет зависеть от версии самого языка. Если он 2-й версии, то ставится просто pip, если 3-й, то pip3.
sudo apt install python3-pip
Проверяем установленную версию pip:
pip3 --version pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)
Установленная версия pip соответствует присутствующей в системе версии python 3.8.
Установка пакетов python
Итак, pip мы установили, давайте теперь посмотрим, как с помощью этого пакетного менеджера устанавливать пакеты python. Никаких отличий от других пакетных менеджеров тут нет. Вот пример того, как устанавливается пакет pymysql для работы с базами данных mysql с помощью пайтона.
pip3 install pymysql
Посмотреть список установленных пакетов можно следующим образом:
pip3 list
А вот так вы можете узнать, какие файлы были установлены в систему, принадлежащие указанному пакету.
pip3 show --files pymysql
Удалить пакет с помощью pip можно следующим образом:
pip3 uninstall pymysql
Вкратце по работе с pip все. Ничего сложного, все как обычно.
Обновить Python
Рассмотрим теперь тему с обновлением python в ubuntu. Тут может быть несколько вариантов.
- Обновить с помощью apt до последней версии, находящейся в репозитории системы.
- Использовать для обновления python сторонний репозиторий.
- Собрать самую свежую версию из исходников.
Первый и третий варианты мы уже рассмотрели ранее. Обновление 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.
Выбор по умолчанию
В описанных выше разделах мы установили как минимум 2 разные версии python3 — 3.8.5 и 3.9.1. Давайте теперь разберемся, какая их них будет выбираться по умолчанию.
В ubuntu указать дефолтную версию python, которая будет выбираться по умолчанию, можно с помощью команды update-alternatives. Вот как это выглядит:
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10
Проверяем теперь дефолтную версию:
python -V Python 3.8.5
Так мы установили в системе по умолчанию версию python 3.8.5. А теперь изменим это на более свежую версию 3.9.1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.9 5 sudo update-alternatives --config python
В предложенном списке выбираем нужную нам версию пайтона, которая будет использоваться по умолчанию в нашей системе ubuntu.
Таким образом, можно добавить сколько угодно версий python в систему и выбирать среди них ту, что будет дефолтной. А к остальным можно обращаться по прямым ссылкам. Например так — /usr/bin/python3.
Как запускать Python скрипты
С установкой и обновлением пайтона разобрались. Давайте теперь посмотрим, как нам запускать скрипты в системе. Ничего особенного для этого делать не надо. Достаточно указать бинарник интерпретатора и сам скрипт. Примерно так выглядит запуск python скрипта в ubuntu:
python script.py
Скрипт будет запущен дефолтной версией пайтона. Если нужно запустить в какой-то конкретной версии, то делается это так:
/usr/bin/python3.9 script.py
Так же скрипты пайтона можно запускать напрямую в консоли. Для этого в самом начале скрипта нужно объявить окружение.
#!/usr/bin/env python
После этого достаточно сделать файл исполняемым и запустить прямо в консоли.
chmod +x script.py ./script.py
Если вы хотите запускать скрипт как службу, то вам придется добавить юнит в systemd. Делается это следующим образом. Создаем файл /lib/systemd/system/python.service:
[Unit] Description=Python Service After=multi-user.target Conflicts=getty@tty1.service [Service] Type=simple ExecStart=/usr/bin/python /home/user/script.py StandardInput=tty-force [Install] WantedBy=multi-user.target
После этого перечитываем конфигурацию systemd и запускаем скрипт на пайтоне как службу:
sudo systemctl daemon-reload sudo systemctl enable python.service sudo systemctl start python.service
Так как мой скрипт не предполагает работу в режиме службы, то после выполнения он был завершен. Если же у вас там запрограммирована непрерывная работа, то он будет работать как служба через systemd.
Как удалить Python в Ubuntu
Если вам по какой-то причине необходимо удалить python с сервера ubuntu, то сделать это можно штатным образом через пакетный менеджер apt. Для того, чтобы узнать версию пакетов для удаления, можно вывести их список.
sudo dpkg -l | grep python
После этого, подставляя версию нужного пакета, удалить его:
sudo apt remove python3
Только будьте внимательны при удалении python из системы. Он очень много кем используется. При его удалении будет предложено удалить и все его зависимости. А это внушительный список пакетов, которые без пайтона не смогут работать.
К примеру, без пайтона не сможет работать netplan, с помощью которого настраивается сеть. Так что аккуратнее с удалением питона из системы.
Запуск Python в Docker
Ну и в завершении статьи про Python в Ubuntu, покажу, как можно еще его запускать без локальной установки непосредственно в саму систему. Вы можете запустить питона в докере. Для этого просто выберите необходимую вам версию Python и запустите Docker контейнер с ней.
docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp python:3 python script.py
В данном случае я быстро запустил свой скрипт в версии 3, используя контейнер python:3. Если мне то же самое нужно сделать во 2-й версии, то я просто использую другой контейнер.
docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp python:2 python script.py
Таким образом я могу запускать свой скрипт на любой версии python без необходимости его локальной установки. В приведенном примере контейнер будет автоматически остановлен и удален после выполнения скрипта. За это отвечает параметр —rm, который я указал.
Хорошо разложил тему, респект.
Помогли, спасибо большое!)