Читаем Автостопом по Python онлайн бесплатно
Автостопом по Python
Перед вами — увлекательная книга, которую по достоинству оценит любой неравнодушный программист и даже бывалый питонщик. Она составлена на основе одноименного онлайнового руководства и содержит наработки многочисленных профессионалов и энтузиастов, знающих, что такое Python, и чего вы от него хотите. Проверенные методы и новейшие приемы, собранные в этой книге, помогут вам стать профессиональным Python-программистом и во всеоружии встретить наступающую эпоху Python 3.
Серия: Бестселлеры O'Reilly
Статус: Завершена полностью
Компьютеры и Интернет / Программирование, программы, базы данных / НеотсортированноеПереводчик
Технический редактор
Литературные редакторы
Художники
Корректоры
Верстка
Authorized Russian translation of the English edition of The Hitchhiker’s Guide to Python.
© 2016 Kenneth Reitz, Tanya Schlusser
This translation is published and sold by permission of O’Reilly Media, Inc., which owns or controls all rights to publish and sell the same. All rights reserved.
© Перевод на русский язык ООО Издательство «Питер», 2017
© Издание на русском языке, оформление ООО Издательство «Питер», 2017
© Серия «Бестселлеры O’Reilly», 2017
Python большой. Действительно большой. Вы не поверите своим глазам, когда увидите, насколько он огромен.
Это руководство
В первой части книги мы поговорим о том, как выбрать текстовый редактор или интерактивную среду разработки, которые подойдут вам для работы (например, читатели, которые часто используют язык Java, могут предпочесть Eclipse с встроенным плагином для Python). Кроме того, рассматриваются другие интерпретаторы, удовлетворяющие те потребности, в отношении которых вы даже предположить не могли, что Python может с этим справиться (например, существует реализация MycroPython, основанная на чипе ARM Cortex-M4). Во второй части демонстрируется «питонский» стиль выделения кода примеров, принятый в сообществе, работающем с открытым исходным кодом. Надеемся, этот стиль вдохновит вас на углубленное изучение и экспериментирование с открытым кодом. В третьей части кратко рассматривается широкий перечень библиотек, наиболее часто используемых в сообществе Python, — это поможет вам получить представление о том, какие задачи Python может решать в текущий момент.
В этой книге используются следующие условные обозначения.
Курсивом выделены новые термины.
Моноширинный шрифт
Применяется для листингов программ, а также внутри абзацев, чтобы обратиться к элементам программы вроде переменных, функций и типов данных. Им также выделены имена и расширения файлов.
Полужирный моноширинный шрифт
Показывает команды или другой текст, который пользователь должен ввести самостоятельно.
Показывает текст, который должен быть заменен значениями, введенными пользователем, или значениями, определяемыми контекстом.
Используется для обозначения URL-адресов, адресов электронной почты.
Этот рисунок указывает на совет или предложение.
Этот рисунок указывает на общее замечание.
Этот рисунок указывает на предупреждение.
Друзья, добро пожаловать на страницы книги «Автостопом по Python»!
Эта книга, насколько мне известно, первая в своем роде: она создана одним автором (мной — Kenneth), а большая часть содержимого предоставлена сотнями людей со всего света бесплатно. В истории человечества никогда не было такой технологии, которая позволила бы осуществиться совместному проекту такого размера и масштаба.
Создание этой книги стало возможным благодаря:
•
•
•
Наконец, я хотел бы лично поблагодарить Таню (Tanya Schlusser), проделавшую сложную работу по преобразованию моего труда в форму книги и подготовившую ее к публикации, а также потрясающую команду издательства O’Reilly — Доуна (Dawn), Жасмин (Jasmine), Ника (Nick), Хезер (Heather), Николь (Nicole), Мег (Meg) и десятки людей, которые работали для того, чтобы эта книга стала еще лучше.
Эта часть посвящена настройке среды Python. Нас вдохновило руководство по Python для Windows автора Стюарт Элисс (Stuart Eliss) (http://www.stuartellis.eu/articles/python-development-windows/). Первая часть состоит из следующих глав.
• Глава 1 «Выбираем интерпретатор». Мы сравним Python 2 и Python 3, а также рассмотрим некоторые интерпретаторы в качестве альтернативы CPython.
• Глава 2 «Правильная установка Python». Мы покажем, как получить Python, а также инструменты pip и virtualenv.
• Глава 3 «Ваша среда разработки». Мы опишем наши любимые текстовые редакторы и IDE для разработки с помощью Python.
При выборе интерпретатора для Python всегда возникает вопрос, что выбрать — Python 2 или Python 3? Ответ не всегда очевиден, однако третья версия с каждым днем становится все более популярной.
Дела обстоят следующим образом:
• долгое время стандартом был Python 2.7;
• в Python 3 произошли значительные изменения в языке (этим немного недовольны некоторые разработчики[1]);
• Python 2.7 будет получать обновления безопасности до 2020 года (https://www.python.org/dev/peps/pep-0373/);
• Python 3 продолжает развиваться, как это происходило с Python 2 в последние годы.
Теперь вы понимаете, почему этот выбор не из простых.
Как нам кажется, опытный разработчик скорее выберет Python 3. Но, если вы можете работать только с Python 2, вы все равно будете считаться пользователем Python. Вот наши рекомендации.
Используйте Python 3, если…
• вам нравится Python 3;
• вы не знаете, какую версию выбрать;
• вы новатор.
Используйте Python 2, если…
• вам нравится Python 2 и вас печалит мысль, что в будущем вас ждет лишь Python 3;
• это повлияет на требования к стабильности вашего приложения[2];
• этого требует программное обеспечение, от которого вы зависите.
Если вы выбираете интерпретатор для Python и не имеете предубеждений, вам следует использовать новейший Python 3.х (в каждой версии появляются новые и улучшенные модули стандартных библиотек, а также исправления ошибок и пробелов в безопасности). Прогресс не стоит на месте. Выбирайте Python 2, только если на то есть серьезная причина, например вы работаете с библиотекой, которая использует Python 2 и не имеет адекватной альтернативы в Python 3, если вам нужна конкретная реализация (см. раздел «Реализации» далее) или если вам просто нравится работать с Python 2 (как некоторым из нас).
С помощью ресурса Can I Use Python 3? (https://caniusepython3.com/) вы можете проверить, блокируют ли используемые вами проекты возможность работать с Python 3.
Для получения информации обратитесь к Python2orPython3 (http://bit.ly/python2-or-python3), где указываются причины обратной несовместимости в спецификации языков, а также приводятся ссылки на подробные описания различий.
Если вы только начинаете работу с Python, кое о чем вам следует волноваться больше, чем о кросс-совместимости всех версий Python. Просто пишите работающий код для своей системы, а остальное наверстаете позже.
Когда говорят о Python, зачастую имеют в виду не только сам язык, но и реализацию CPython. По сути, Python — это спецификация для языка, которая может быть реализована множеством разных способов.
Разные реализации могут пригодиться для совместимости с другими библиотеками или же для небольшого ускорения. Библиотеки Python должны работать независимо от вашей реализации Python, но работоспособность библиотек, основанных на языке C (например, NumPy), не гарантируется. В этом разделе мы рассмотрим наиболее популярные реализации Python.
В этом руководстве подразумевается, что вы работаете со стандартной реализацией CPython для Python 3, однако мы часто будем делать пометки для Python 2.
CPython (http://www.python.org/) — это базовая реализация[3] Python, написанная на языке С. Она компилирует код Python в промежуточный байт-код, который затем интерпретируется виртуальной машиной. CPython предоставляет высший уровень совместимости пакетов Python с модулями расширения, написанными на С[4].
Если вы пишете программу с открытым исходным кодом и хотите охватить наиболее широкую аудиторию, обратитесь к CPython. При использовании пакетов, функционирование которых зависит от расширений, написанных на С, CPython — ваш единственный вариант реализации.
Все версии языка Python созданы на языке С, поскольку CPython является базовой реализацией.
Stackless Python (https://bitbucket.org/stackless-dev/stackless/wiki/Home) — это обычный вариант CPython (поэтому данная реализация будет работать со всеми библиотеками, которые может использовать CPython). Эта версия языка имеет патч, отвязывающий интерпретатор Python от стека вызовов, что позволяет изменять порядок выполнения кода. Stackless вводит концепцию
Библиотека greenlet (http://greenlet.readthedocs.org/) реализует такую же функциональность по смене стека для пользователей CPython. Большая ее часть также реализована в PyPy.
PyPy (http://pypy.org/) — это интерпретатор Python, реализованный в ограниченном подмножестве статически типизированных языков Python (которое называется RPython), что позволяет выполнить оптимизацию. Интерпретатор предоставляет функциональность компиляции на лету и поддерживает несколько бэкендов, например C, язык CIL (Common Intermediate Language) (http://bit.ly/standard-ecma-335) и байт-код виртуальной машины Java (Java Virtual Machine, JVM).
PyPy нацеливается на максимальную совместимость с базовой реализацией CPython (http://speed.pypy.org/), при этом улучшая производительность. Если вы хотите повысить производительность вашего кода Python, стоит опробовать в деле PyPy. Согласно тестам производительности (бенчмаркам), в данный момент PyPy быстрее CPython более чем в пять раз. Он поддерживает Python 2.7, а PyPy3 (http://pypy.org/compat.html) нацелен на Python 3. Обе версии можно найти на странице загрузки PyPy (http://pypy.org/download.html).
Jython (http://www.jython.org/) — это реализация интерпретатора Python, компилирующая код Python в байт-код Java, который затем выполняется JVM. Дополнительно он может импортировать и использовать любой класс Java в качестве модуля Python.
Если вам нужно создать интерфейс для существующей базы кода Java (или же у вас есть другие причины писать код Python для JVM), Jython будет лучшим выбором.
Jython в данный момент поддерживает версии Python вплоть до Python 2.7 (http://bit.ly/jython-supports-27).
IronPython (http://ironpython.net/) — это реализация Python для фреймворка. NET. Она может использовать библиотеки, написанные как на Python, так и с помощью. NET, а также предоставлять доступ к коду Python другим языкам фреймворка. NET.
Надстройка Python Tools for Visual Studio (http://ironpython.net/tools/) интегрирует IronPython непосредственно в среду разработки Visual Studio, что делает эту реализацию идеальным выбором для разработчиков, использующих Windows.
IronPython поддерживает Python 2.7 (http://ironpython.codeplex.com/releases/view/81726).
Python for.NET (http://pythonnet.github.io/) — это пакет, который предоставляет практически бесшовную интеграцию нативно установленного Python и общеязыковой среды выполнения. NET (Common Language Runtime (CLR)). Такой подход противоположен подходу, которым пользуется IronPython. Это означает, что PythonNet и IronPython дополняют друг друга, а не конкурируют.
В совокупности с Mono (http://www.mono-project.com/) PythonNet позволяет нативным установкам Python в операционных системах, отличающихся от Windows, например OS X и Linux, работать с фреймворком. NET. Реализация может быть без конфликтов запущена вместе с IronPython.
PythonNet поддерживает версии от Python 2.3 до Python 2.7. Инструкции по установке вы найдете на странице http://pythonnet.github.io/readme.html.
Skulpt (http://www.skulpt.org/) — это реализация Python на JavaScript. Для нее еще не была полностью портирована стандартная библиотека CPython. Библиотека включает в себя модули math, random, turtle, image, unittest, а также части модулей time, urllib, DOM и re. Предназначена для использования при обучении. Кроме того, есть возможность добавить собственные модули (http://bit.ly/skulpt-adding-module).
Стоит упомянуть примеры ее применения — Interactive Python (http://interactivepython.org/) и CodeSkulptor (http://www.codeskulptor.org/demos.html).
Skulpt поддерживает большую часть функциональности версий Python 2.7 и Python 3.3. Для получения более подробной информации смотрите страницу реализации Skulpt на GitHub (https://github.com/skulpt/skulpt).





