# Python (Русский)

Ссылки по теме

- Python package guidelines
- Python/Virtualenv
- mod_wsgi

Состояние перевода: На этой странице представлен перевод статьи Python. Дата последней синхронизации: 21 декабря 2015. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Из Википедии:

  Python — высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода. Синтаксис ядра Python минималистичен. В то же время стандартная библиотека включает большой объём полезных функций.
  Python поддерживает несколько парадигм программирования, в том числе структурное, объектно-ориентированное, функциональное, императивное и аспектно-ориентированное. Основные архитектурные черты — динамическая типизация, автоматическое управление памятью, полная интроспекция, механизм обработки исключений, поддержка многопоточных вычислений и удобные высокоуровневые структуры данных. Код в Python организовывается в функции и классы, которые могут объединяться в модули (они, в свою очередь, могут быть объединены в пакеты).

## Установка

Установите пакет python и/или python2. Оба пакета доступны в официальных репозиториях.

### Python 3

Python 3 - это свежая версия языка, несовместимая с Python 2. Синтаксис в ней, по большей части, такой же, но многие вещи, например, то, как работают встроенные объекты наподобие словарей, значительно изменились, а многие устаревшие функции были окончательно удалены. Помимо этого стандартная библиотека была разбита на несколько отдельных частей. Чтобы подробнее узнать о различиях, прочитайте статью Python2orPython3, а также относящуюся к ней главу книги "Погружение в Python 3".

Для получения свежей версии Python 3 установите пакет python из официальных репозиториев.

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

Эта статья или раздел является кандидатом на объединение с Python VirtualEnv.

Причина: пожалуйста, используйте второй аргумент шаблона для указания причины. (обсуждение: Talk:Python (Русский)#)

Начать работу над новым проектом внутри виртуального окружения (virtualenv) очень просто:

    $ python -m venv newproj
    $ source newproj/bin/activate
    (newproj)$ pip install <dependency>

### 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 будет использоваться, введите следующую команду:

    $ which python

Эту статью или раздел было решено удалить

Причина: Описанные действия ведут лишь к "обману" переменной PATH, смотрите [1][устаревшая ссылка 2015-08-08] (обсуждение: Talk:Python (Русский)#)

Помимо этого, вы можете использовать Python VirtualEnv, в котором реализуется такой же способ "обмана" окружения: вызов `#!/usr/bin/env python`. Когда VirtualEnv активирован, он будет использовать исполняемый файл Python, указанный в переменной `$PATH`. Соответственно, если VirtualEnv установлен совместно с Python 2, будет использоваться Python 2.

Для начала установите пакет python2-virtualenv. Затем создайте каталог, содержащий VirtualEnv, при помощи следующей команды:

    $ virtualenv2 venv

Активируйте VirtualEnv, который обновит значение переменной `$PATH`, заставив ее указывать на Python 2. Помните, что эта активация действует только в текущем сеансе терминала:

    $ source venv/bin/activate

После этого скрипты должны запускаться через Python 2.

## Решение проблемы с версией Python в скриптах сборки

Сборочные скрипты многих проектов предполагают, что `python` обращается к Python 2, и в конце концов это может привести к ошибке, обычно гласящей, что `print 'foo'` - неправильный синтаксис. К счастью, многие из них вызывают `python` через переменную `$PATH`, а не содержат в себе жестко прописанный `#!/usr/bin/python`. Благодаря этому, вместо редактирования установочных скриптов, вы можете создать файл `/usr/local/bin/python` с содержимым наподобие этого:

    /usr/local/bin/python

    #!/bin/bash
    script=$(readlink -f -- "$1")
    case "$script" in (/path/to/project1/*|/path/to/project2/*|/path/to/project3*)
        exec python2 "$@"
        ;;
    esac

    exec python3 "$@"

Где `/path/to/project1/*|/path/to/project2/*|/path/to/project3*` - список шаблонов, разделенных символом `|` и соответствующих всем веткам проекта.

Не забудьте сделать файл исполняемым:

    # chmod +x /usr/local/bin/python

После этого соответствующие скрипты будут запускаться через Python 2.

## Включение автодополнения в оболочке Python

Примечание: Этот совет относится только к Python 2, начиная с версии 3.4 автодополнение по клавише Tab по умолчанию включено

Скопируйте следующее в интерактивную оболочку Python:

    /usr/bin/python

    import rlcompleter
    import readline
    readline.parse_and_bind("tab: complete")

Источник: http://algorithmicallyrandom.blogspot.com.es/2009/09/tab-completion-in-python-shell-how-to.html.

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

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

- TkInter — привязки к Tk

  http://wiki.python.org/moin/TkInter || стандартный модуль

- pyQt — привязки к Qt

  http://www.riverbankcomputing.co.uk/software/pyqt/intro || python2-pyqt4 python2-pyqt5 python-pyqt4 python-pyqt5

- pySide — привязки к Qt

  http://www.pyside.org/ || python2-pyside python-pyside

- pyGTK — привязки к GTK+ 2

  http://www.pygtk.org/ || pygtk

- PyGObject — привязки к GTK+ 2/3 при помощи GObject Introspection

  https://wiki.gnome.org/PyGObject_ru || python2-gobject2 python2-gobject python-gobject2 python-gobject

- wxPython — привязки к wxWidgets

  http://wxpython.org/ || wxpython

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

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

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

- python15AUR: Python 1.5.2
- python24AUR[ссылка недействительна: сохранено в aur-mirror]: Python 2.4.6
- python25AUR: Python 2.5.6
- python26AUR: Python 2.6.9
- python30AUR: Python 3.0.1
- python31AUR[ссылка недействительна: сохранено в aur-mirror]: Python 3.1.5
- python32AUR: Python 3.2.5
- python33AUR: Python 3.3.5
- python34AUR: Python 3.4.3

По состоянию на июль 2014 г. Python upstream предоставляет обновления безопасности лишь для версий 2.7, 3.2, 3.3 и 3.4. Использование других версий для работы приложений с непроверенным кодом или имеющих отношение к интернету может быть весьма опасным и не рекомендуется.

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

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

IPython - это расширенная командная строка Python, доступная в официальных репозиториях в пакетах ipython и ipython2.

bpython - интерфейс ncurses для интерпретатора Python, доступный в официальных репозиториях в пакетах bpython и bpython2.

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

- Learning Python - одна из самых исчерпывающих, актуальных и хорошо написанных книг про Python
- Dive Into Python - великолепный бесплатный ресурс, предназначенный для продвинутых пользователей и имеющий обновленную версию для Python 3
- A Byte of Python - книга, подходящая для тех, кто только начинает осваивать Python (и, в особенности, создание скриптов)
- Learn Python The Hard Way - лучшее введение в программирование
- Learn Python - хороший ресурс для изучения Python
- Crash into Python - также известное под названием Python for Programmers with 3 Hours, это руководство предоставляет опытным разработчикам на других языках интенсивный курс по освоению Python
- Beginning Game Development with Python and Pygame: From Novice to Professional - о разработке игр
- Pythonspot - великолепные руководства по программированию на Python

Categories:

- Programming languages (Русский)
- Русский

Hidden category:

- Pages with broken package links