[ @python @console ]
В современных дистрибутивах Python установлен по-умолчанию. Он приходит из общего репозитория и со временем обновляется.
Одновременно может быть установлено несколько версий.
Проверить версию Python
Единая версия для всей системы вызывается через симлинк “/usr/bin/python3”
Раньше вызывалось через “python”, но после перехода на третью версию все привыкли явно указывать версию.
python3 --version
Или
ls /usr/bin/python*
Пример ответа:
/usr/bin/python3
/usr/bin/python3.11
Другой пример ответа:
/usr/bin/python
/usr/bin/python2
/usr/bin/python2.7
/usr/bin/python2.7-config
/usr/bin/python2-config
/usr/bin/python3
/usr/bin/python3.11
/usr/bin/python3.11-config
/usr/bin/python3-config
/usr/bin/python-config
Там же находится симлинк на установленную по-умолчанию версию Python (в моём случае 3.11).
python3.11 --version
Пример ответа в обоих случаях: «Python 3.11.2».
3.11.2 — конкретная версия интерпретатора.
Где что находится
Файл-симлинк /usr/bin/python3]> ссылается на файл [[/usr/bin/python3.11, который ссылается на каталог /usr/share/python3/. Всегда можно поставить что-то куда-то отдельно, но плясать макарену с ручной установкой нет смысла, всё делается автоматически.
Установить idle3
Это Integrated Development Environment — основная среда для выполнения скриптов на Python. Сегодня это опциональный атавизм, скрипты можно запускать в консоли. Но если хочется:
sudo apt-get install idle3
Выполнить скрипт (программу) на Python
Создать каталог проекта
Условно назовём проект «combinat»:
mkdir combinat
Создать файл “main.py”
Сделать новый файл в каталоге с названием проекта — назвать файл “main.py”.
Если файл только один, то его название не имеет значения. Но в проекте всегда появляется несколько файлов, поэтому лучше привыкнуть начинать проекты с файла “main.py”.
mcedit combinat/main.py
В этот файл вставить текст:
if name == "main":
Поднять venv для проекта
Условно назовём проект «combinat»:
python3 -m venv combinat
Появится подкаталог “combinat” с набором служебных каталогов и файлов внутри.
Активировать виртуальное окружение
source combinat/bin/activate
В консоли будет видно, что мы перешли в виртуальное окружение с названием «combinat» — его название выводится перед указанием имени пользователя и hostname.
Выполнить скрипт в проекте
…который уже находится в файле “main.py”
python3 main.py
Если cработает — погнали программировать.
- на первой строке и далее вниз добавить импорт библиотек и все новые сущности
- инструкция «if name == "main":» всегда должна находиться на последней строке скрипта. Обычно там находятся функции, которые надо последовательно вызывать.
if name == "main":
your-second-function-name()
…
Как погасить venv
Зайти в каталог проекта и выполнить
deactivate combinat
Установить пакеты для Python
Это всегда надо выполнять внутри предварительно поднятого venv. Устанавливать пакеты для python через pip напрямую в системе запрещено — это может повлиять на стабильность всей системы.
Вообще всю работу с python предлагается выполнять в изолированном виртуальном окружении.
python3 pip install Some_Package
Установить пакеты для определенной версии Python
Вызвать pip через версию Python, для которой надо что-то установить.
python3.8.9 -m pip install Some_Package
Установить отдельную версию Python
Всегда есть возможность поставить рядом несколько версий Python — иногда это необходимо и обосновано. Далее можно ИЛИ вызывать нужную версию в каждом отдельном случае, ИЛИ даже можно (но не нужно!) переназначать интерпретатор языка глобально, для всей системы.
Можно поставить несколько версий Python и постарее, и посвежее той, что приходит из официального репозитория (на данный момент 3.9.2). Они все потенциально могут вызвать конфликт зависимостей, но это решаемо.
Засетапить окружение для сборки Python из исходного кода
Это кагбэ дальновиднее и независимее всего.
Тут также будут установлен PIP (Python package installer. Помогает ставить всякие дополнения в Python так же, как в Debian устанавливается любое ПО — из командной строки с удалённого репозитория) и python3-venv (виртуальное окружение для запуска скриптов Python):
sudo apt update && sudo apt upgrade && sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev python3-pip python3-venv
Проверка:
pip --version
Ожидаемый ответ: pip 20.3.4 from /usr/lib/python3/dist-packages/pip (python 3.11)
Скачать нужную версию
- Go to https://www.python.org/ftp/python/
- выбрать нужную версию Python в архиве tar.xz, например, 3.8.9
Это можно из консоли в любом месте:
Распаковать снятый архив
tar -xf Python-3.8.9.tar.xz && cd Python-3.8.9
Выполнить конфгурирование
./configure --enable-optimizations --with-ensurepip=install
Вторая опция срзу установит PIP.
Побежали «checking for…». Ждём результат creating Makefile.
Make
make -j 5
Тут „5” — количество ядер в процессоре ноутбука, которые будут рады выполнить нашу команду. Выяснить их количество можно заранее командой ’nproc’.
Подождать, пока отгудятся кулеры от нагрузки. Дело может и затянуться, там выполняется некое множество тестов.
Собрать версию
Не надо использовать стандартный make install, поскольку он перезапишет существующий системный бинарный файл python3. А это может порушить уже установленный софт в системе. Используем только altinstall.
sudo make altinstall
Переместить каталог Python-3.8.9 в /opt/
Там ему и полагается быть.
sudo cp -r ~/PythonSource/Python-3.8.9/ /opt/
Можно удалить каталог ~/PythonSource.
Назначить переменную для запуска версии Python
Это самый разумный способ: действует локально для каждого пользователя и легко изменяется.
mcedit ~/.bashrc
В самом низу файла добавить строку:
alias python3.8.9='/opt/Python-3.8.9/python'
Алиас заработает или после полного релогина, или после принудительно взбадривания перечитывания файла .bashrc
. ~/.bashrc
Проверить результат
python3.8.9 --version
Ожидаемый ответ: Python 3.8.9
python3 --version
Ожидаемый ответ: Python 3.11
В системе установлены одновременно две версии Python. Основное ПО использует системную версию (3.11). Я же могу указывать, с какой версией запускать мои скрипты. При обновлении системы основная версия Python может измениться, а мой “python3.8.9” не будет затронут.
Если python3.8.9 будет удалён/заменён, система этого «не заметит».
Как использовать разные версии Python
Запуск условного hello.py с командой print("Goodbye, World!") внутри.
- python3 hello.py
- python3.8.9 hello.py
См. также
+pip3
+Как сделать Python-проект в Sublime
TMP