Python (Русский)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Состояние перевода: На этой странице представлен перевод статьи Python. Дата последней синхронизации: 6 июня 2021. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Из What is Python?:

Python — интерпретируемый, интерактивный, объектно-ориентированный язык программирования. Включает модули, исключения, динамическую типизацию, высокоуровневые типы данных и классы. Поддерживает различные парадигмы программирования помимо ООП, вроде процедурного и функционального программирования. Python соединил в себе впечатляющую мощь и простоту синтаксиса. В нём предусмотрены интерфейсы для многих системных вызовов и библиотек, а также оконных систем; возможно расширение с помощью С и С++. Помимо всего перечисленного, он может использоваться как язык расширений для приложений, которым необходим программный интерфейс. Наконец, Python портируем: он запускается на множестве вариантов Unix, включая Linux и macOS, а также Windows.

Установка

Python 3

Python 3 — последняя и активно разрабатываемая версия языка. Последние изменения в Python 3 можно увидеть на странице What's New in Python.

Текущий релиз Python 3 можно установить с пакетом python.

Если вы хотите собрать самую свежую RC/бета-версию из исходников, посетите страницу Python Downloads. В пользовательском репозитории Arch также есть несколько отличных PKGBUILD'ов. Если вы решили собрать RC-версию, обратите внимание, что исполняемый файл устанавливается (по умолчанию) в каталог /usr/local/bin/python3.x. В качестве альтернативы, для которой не требуются права суперпользователя, можно выбрать установку в домашний каталог с помощью pyenv.

Python 2

Важно: Жизненный цикл Python 2 закончился 1-го января 2020 года. Некоторое количество пакетов всё ещё зависит от Python 2, но эта версия Python больше поддерживаться не будет. См. Sunsetting Python 2.

Python 2 — более старая версия языка. Python 3 и Python 2 несовместимы. Обзор различий можно найти в статье Python2orPython3.

Хотя Python 2 более не поддерживается, некоторые пакеты всё ещё от него зависят. Python 2 может также пригодиться разработчикам, которые поддерживают, используют или портируют старые программы на Python 2.

Последнюю версию Python 2 можно установить с пакетом python2.

Python 2 будет успешно запускаться и функционировать, даже если в вашей системе также установлен Python 3. Эта версия запускается командой python2.

Любая программа, которой необходим Python 2, должна вызывать команду /usr/bin/python2 вместо /usr/bin/python, которая указывает на Python 3. Чтобы добиться этого, откройте программу или сценарий в текстовом редакторе и измените первую строку, которая может выглядеть как

#!/usr/bin/env python

или

#!/usr/bin/python

В обоих случаях замените python на python2, и программа будет использовать Python 2.

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

$ python2 мой_сценарий.py

Но бывают ситуации, когда у вас нет возможности контролировать поведение сценариев. В этом случае можно попробовать обмануть окружение. Этот трюк работает только если в сценарии указана строка #!/usr/bin/env python: в случае с #!/usr/bin/python ничего не получится. Все это возможно благодаря принципу работы утилиты env, которая ищет первое подходящее совпадение в каталогах, указанных в переменной PATH.

Итак, для начала создайте необходимый каталог:

$ mkdir ~/bin

Затем создайте символическую ссылку python, указывающую на python2, и ещё одну для сценариев настройки:

$ ln -s /usr/bin/python2 ~/bin/python
$ ln -s /usr/bin/python2-config ~/bin/python-config

Наконец, добавьте вновь созданный каталог в начало переменной PATH:

$ export PATH=~/bin:$PATH
Примечание: Такое изменение переменных окружения не является долговременным и действует только в текущем сеансе терминала.

Чтобы узнать, какая версия интерпретатора Python будет использоваться, выполните:

$ command -v python

Еще один способ обмана окружения, который также основан на вызове #!/usr/bin/env python — использовать #Виртуальное окружение.

Альтернативные реализации

Пакет python содержит CPython, стандартную реализацию Python, но существуют и другие реализации. Они обычно основаны на более старых версиях Python и лишь частично совместимы с CPython.

Доступные в Arch Linux реализации:

  • PyPy — Реализация Python, написанная на Python. Улучшенная производительность и использование памяти по сравнению с Cython.
https://www.pypy.org || pypy, pypy3
  • Jython — Реализация языка Python на Java. Используется для встраивания сценариев Python в программы на Java или использования библиотек Java в программах на Python.
https://www.jython.org/ || jython
  • micropython — Python для микроконтроллеров. Включает небольшое подмножество стандартной библиотеки Python; оптимизирован под запуск на микроконтроллерах в ограниченном окружении.
https://micropython.org/ || micropythonAUR
  • IronPython — Реализация языка программирования Python, которая плотно интегрирована с .NET. Может использовать библиотеки .NET и позволяет .NET-программам использовать библиотеки Python.
https://ironpython.net || ironpython-gitAUR

Существуют и другие реализации. Некоторые из них, вроде Stackless, Pyston и Cinder, используются внутри больших технологических компаний. Другие имели некоторое значение в прошлом, но больше не поддерживаются из-за улучшений более популярных реализаций.

Альтернативные оболочки

Пакет python включает интерактивную оболочку/REPL Python, которая запускается командой python. Доступны также следующие оболочки:

  • bpython — Приятный интерфейс для интерпретатора Python.
https://bpython-interpreter.org/ || bpython
  • IPython — Мощная интерактивная оболочка Python.
https://ipython.org/ || ipython
  • Jupyter — Сетевое приложение на основе IPython.
https://jupyter.org/ || jupyterlab, jupyter-notebook
  • ptpython — Продвинутый Python REPL собранный с prompt-toolkit.
https://github.com/jonathanslenders/ptpython || ptpythonAUR

Старые версии

Важно: Версии Python до 3.5 включительно не поддерживаются. Использование этих версий для работы веб-приложений или запуска недоверенного кода опасно и не рекомендуется.

Старые версии Python доступны в AUR и могут быть полезны, если вас одолевает историческое любопытство, если старые приложения не запускаются на более новых версиях или если вам необходимо протестировать программы на возможность работы в дистрибутивах со старыми версиями интерпретатора:

Дополнительные модули/библиотеки для старых версий Python можно найти в AUR по слову python<версия_без_точки>. Например, введите python26 для поиска модулей версии 2.6.

Управление пакетами

Существует целый ряд способов установить пакет Python в Arch Linux:

https://pip.pypa.io/ || python-pip
  • Anaconda — Открытая система управления пакетами и окружением, изначально созданная для программ Python. С помощью Conda можно устанавливать пакеты из репозиториев Anaconda.
https://docs.conda.io/projects/conda/ || anacondaAUR
  • Miniconda — Легковесная альтернатива для Anaconda, которая по умолчанию устанавливает пакетный менеджер, но не устанавливает пакеты для научных вычислений.
https://docs.conda.io/en/latest/miniconda.html || miniconda3AUR

При установке пакетов из источников, отличных от официальных репозиториев и AUR, рекомендуется использовать виртуальное окружение (или управление окружением Conda), чтобы предотвратить конфликты с системными пакетами в каталоге /usr. В качестве альтернативы можно устанавливать пакеты командой pip install --user, которая устанавливает пакеты для пользователя, а не в системный каталог /usr.

См. Python Packaging User Guide на предмет лучших практик по управлению пакетами.

Исторически easy_install (часть python-setuptools) использовалась для установки пакетов, распространяемых как Eggs. easy_install и Eggs были заменены на pip и Wheels. Подробнее см. pip vs easy_install и Wheel vs Egg.

Примечание: Существуют также инструменты для интеграции pip и pacman путём автоматической генерации файлов PKGBUILD для выбранных пакетов PyPI: см. Creating packages#PKGBUILD generators.
Совет: pipenv предоставляет отдельный интерфейс командной строки для Pipfile, pip и virtualenv. Он доступен в пакете python-pipenv.

Привязки к графическим библиотекам

Доступны следующие привязки к библиотекам графических элементов:

  • Tkinter — Стандартный интерфейс Python к набору графических инструментов Tk.
https://docs.python.org/3/library/tkinter.html || python
  • Qt for Python (PySide2) — Официальные привязки Python к Qt.
https://www.qt.io/qt-for-python || pyside2, pyside2-tools
  • pyQt — Набор привязок Python к Qt.
https://riverbankcomputing.com/software/pyqt/intro || python-pyqt5
  • PyGObject — Привязки Python для библиотек на основе GObject вроде GTK, GStreamer, WebKitGTK, GLib и GIO.
https://pygobject.readthedocs.io/ || python-gobject
  • wxPython — Кросс-платформенный набор GUI-инструметов для Python, который выступает в роли обёртки для wxWidgets.
https://wxpython.org/ || python-wxpython

Для использования этих привязок в Python, скорее всего, потребуется доустановить соответствующие наборы библиотек.

Советы и рекомендации

Виртуальное окружение

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

Подробнее см. Python/Virtual environment.

Автодополнение в оболочке Python

Автодополнение по клавише Tab включено в интерактивной оболочке по умолчанию. Учтите, что дополнение readline работает только для строк в глобальном пространстве имён. Пакет python-jedi расширяет возможности автодополнения [1].

Смотрите также

Официальные

Сторонние