Язык программирования Python используют:
● системные администраторы, DevOps- и SRE-инженеры для автоматизации рутинных задач;
● QA-специалисты для покрытия кода тестами;
● специалисты по Data Science и машинному обучению для обработки больших данных и обучения моделей;
● бэкенд-инженеры для написания MVP, продуктовых сервисов и приложений.
Большинство электронных устройств с ОС — телевизоры, телефоны, смарт-часы, системы «умный дом», роутеры и коммутаторы — по умолчанию содержат файлы для установки интерпретатора Python. Такие файлы называются дистрибутивами.
Выбор версии зависит от целей и задач:
● разработка новых проектов с нуля чаще всего ведётся на Python 3;
● при подключении к старому проекту, возможно, придётся поддерживать его на Python 2.
Вторая версия остаётся доступной для установки, потому что на ней много легаси (от англ. legacy — «наследие») — старого кода, на котором работают продуктовые решения или отдельные приложения. Чтобы переписать такой код, нужно много ресурсов, но на это нецелесообразно тратить время и силы разработчиков.
Python 2 используют на устройствах, которые невозможно усовершенствовать или обновить, например роутерах и компьютерах со старыми версиями ОС. Операционные системы таких устройств несовместимы с Python 3.
Раньше новые функции версии 3 переносили в версию 2, но с 2021 года версия 2.7 официально не поддерживается. При этом продукты многих компаний до сих пор работают на Python 2. Например, старые версии таких программ, как Blender и GIMP.
Новичкам, которые только планируют освоить Python, лучше сразу устанавливать Python 3. В новой версии есть все старые функции. Посмотреть актуальные версии и релизы можно на официальной странице.
На курсе «Python-разработчик» студенты с первого урока начинают писать на Python и учатся решать задачи бэкенд-разработчика.
Официальная страница Python
Для Windows скачивается установочный файл в формате *.exe, для macOS и Linux — deb-пакет.
Также Python можно запустить через Docker — систему контейнеризации. Для запуска в Windows нужно дополнительно установить сам Docker. Для этого перейти на сайт — https://docs.docker.com/desktop/install/windows-install/, скачать дистрибутив и запустить установку.
Установить Python на Linux можно с помощью менеджера пакетов. Для этого нужно ввести в окне консоли команду:
apt-get install python[version]
Важный момент: это установка системного пакета, поэтому её нужно запускать с правами администратора — то есть к команде установки добавить команду sudo.
Установить Python на Mac тоже можно через операционный менеджер пакетов. В этом случае процесс запустит команда:
brew install python[version]
Для запуска нужно только скачать образ с нужной версией интерпретатора и стартовать его. Так как Docker — это система виртуализации, то образ будет одинаково работать на любой операционной системе.
Чтобы скачать образ, в окне консоли нужно ввести команду:
docker run python:[version]
Например:
docker run python:3.10-slim
Стартовать последнюю версию можно командой:
docker run python:latest
Все поддерживаемые версии можно посмотреть на сайте — https://hub.docker.com/_/python.
Или же написать образ самому, используя Dockerfile.
Все распространённые методы работы с Python доступны для Windows, macOS и Linux. Рассмотрим пять популярных способов работы с Python:
Для начала работы нужно запустить Python через командную строку, написав в ней:
python[version]
После этого запускается интерактивный режим работы, в котором можно вводить команды.
В окне консоли можно ввести команду:
python -c
Далее нужно указать весь код, например:
python -c “print (‘Hello’)”
Этот вариант подойдёт, если нужно написать небольшой код для одностраничника или запустить простую команду, например, чтобы проверить текущую версию Python:
python -c “import sys; print (sys.version)”
Чтобы запустить код, в интерпретаторе вводится команда:
python
Вторым параметром указывается название файла. Например, для файла с названием main.py команда будет выглядеть так:
python main.py
Рассмотрим, как это выглядит, на примере IDE PyCharm.
Левая консоль в PyCharm — это дерево файлов. Здесь можно создавать папки и таким образом структурировать весь проект.
При запуске файла в нижнем окне открывается терминал, в котором код автоматически запускается.
Это среда разработки для тех, кто много работает с большими данными или обучает модели: например, специалистов по Data Science или машинному обучению.
Запущенный ранее блок кода сохраняет статус выполнения и вывод в специальном формате — *.ipynb.
Часто в Jupyter импортируют дополнительные библиотеки. Для работы с матрицами и различными данными используют NumPy и pandas, а для визуализации данных в виде графиков и диаграмм — Matplotlib.
У CPython есть только одна серьёзная проблема — наличие GIL. Это механизм глобальной блокировки интерпретатора, который защищает доступ к памяти и объектам Python при параллельном взаимодействии.
GIL не позволяет в полной мере использовать всю производительность многопроцессорных систем, контролируя работу и выполнение нескольких одновременно запущенных потоков. Механизм переводит любой параллельный код и работу с потоками в последовательное выполнение. Так потоки работают безопасно, а используемая между ними память остаётся согласованной и консистентной. Но такое переключение происходит с задержками и замедляет работу многопоточных программ.
Из-за этой проблемы появились альтернативные интерпретаторы на других языках, например Jython на Java. Полный список можно найти на официальной странице Python.
В альтернативных версиях нет GIL, но управление памятью, в том числе и сборка мусора, реализовано по принципам других языков программирования со всеми их недостатками. Например, в Jython работает сборщик мусора JVM, который утилизирует объекты и занимаемую ими память с задержками.
Проблема с GIL была до версии Python 3.4. Потом её решили на уровне самого языка, добавив два метода: async и await. С помощью этих команд большую задачу можно разделить на подзадачи, которые называются «корутины» или «сопрограммы». Корутины могут выполняться параллельно и асинхронно и при этом не быть связанными друг с другом. Результат их работы можно объединить в конце выполнения и использовать для дальнейших вычислений.
На новых версиях Python для решения проблемы с GIL не нужно переключаться на альтернативные. После обновления появились различные асинхронные фреймворки, например Sanic, Starlette и FastAPI.
Читать также: