7 Честно говоря, лучший вариант — с самого начала использовать либо Python 3, либо виртуальные среды, куда вы не будете устанавливать ничего, кроме virtualenv и, возможно, virtualenvwrapper в соответствии с советами Хинека Шлавака (Hynek Schlawack) (https://hynek.me/articles/virtualenv-lives/).
8 Это гарантирует, что версия Python, которую вы собираетесь использовать, будет той, которую только что установил Homebrew (оставил оригинальную версию Python нетронутой).
9 Символьная ссылка — это указатель на реальное местоположение файла. Вы можете проверить, куда ведет ссылка, набрав, например, ls -l usrlocal/bin/python3 в командной строке.
10 Пакеты, которые минимально совместимы с Setuptools, предоставляют достаточно информации для библиотеки, чтобы она могла идентифицировать и получить все зависимые пакеты. Для более подробной информации обратитесь к документации Packaging and Distributing Python Projects (https://packaging.python.org/en/latest/distributing.html), PEP 302 (https://www.python.org/dev/peps/pep-0302/) и PEP 241 (https://www.python.org/dev/peps/pep-0241/).
11 Сторонники такого подхода говорят, что это единственный способ гарантировать, что ничто не сможет переписать старую версию существующей библиотеки и тем самым навредить другому коду ОС, зависимому от версии библиотеки.
12 Для получения более подробной информации обратитесь к инструкции по установке pip (https://pip.pypa.io/en/latest/installing.html).
13 Пакеты, которые минимально совместимы с Setuptools, предоставляют достаточно информации для библиотеки, чтобы она могла идентифицировать и получить все зависимые пакеты. За более подробной информацией обратитесь к документации Packaging and Distributing Python Projects, PEP 302 и PEP 241.
14 Или IronPython (рассматривается в подразделе «IronPython» раздела «Реализации» главы 1).
15 Вы должны знать хотя бы версию Python, которую планируете использовать, а также требуемую разрядность. Мы рекомендуем 32-битную версию, поскольку все сторонние DLL имеют 32-битную версию, но не все — 64-битную. Самое популярное место, где вы можете найти скомпилированные бинарные файлы, — сайт ресурсов Кристофа Голка (Christoph Gohlke) (http://www.lfd.uci.edu/~gohlke/pythonlibs/). Что касается scikit-learn, Карл Клеффнер (Carl Kleffner) выполняет сборку бинарных файлов с помощью MinGW (https://pypi.anaconda.org/carlkl/simple/) для подготовки к итоговому релизу для PyPI.
16 В Anaconda больше бесплатных функций, он поставляется вместе со Spyder — более качественной IDE. Если вы используете Anaconda, для вас может оказаться полезным предметный указатель бесплатного пакета Anaconda (https://repo.continuum.io/pkgs/) и пакета Canopy (https://www.enthought.com/products/canopy/package-index/).
17 Это означает, что вы на 100 % уверены, что все необходимые DLL и драйверы имеют 64-битную версию.
18 В переменной среды PATH перечислены все возможные каталоги, в которых операционная система будет искать исполняемые программы (например, Python и его сценарии вроде pip).
19 Windows PowerShell предоставляет язык сценариев для командной строки, который напоминает оболочки Unix — пользователи Unix могут работать с ним, не читая руководство, но при этом он имеет функциональность, которую можно применять только в Windows. Создан на основе фреймворка .NET. Более подробную информацию ищите в статье «Using Windows PowerShell от компании Microsoft» (http://bit.ly/using-windows-powershell).
20 Для получения более подробной информации обратитесь к инструкциям по установке pip (https://pip.pypa.io/en/latest/installing.html).
21 Пакеты, которые минимально совместимы с Setuptools, предоставляют достаточно информации для библиотеки, чтобы она могла идентифицировать и получить все зависимые пакеты. Более подробные сведения ищите в документации Packaging and Distributing Python Projects (https://packaging.python.org/en/latest/distributing.html), PEP 302 (https://www.python.org/dev/peps/pep-0302/) и PEP 241 (https://www.python.org/dev/peps/pep-0241/).
22 Intel и Anaconda — партнеры (http://bit.ly/announce-anaconda-intel), и все специализированные пакеты компании Intel (https://anaconda.org/intel) доступны только при использовании conda. Однако вы всегда можете выполнить команду conda install pip и применить pip (или pip install conda и использовать conda).
3. Ваша среда разработки
В этой главе приведен обзор текстовых редакторов, интегрированных сред разработки и других инструментов разработки, популярных в настоящий момент.
Мы предпочитаем использовать Sublime Text в качестве редактора и PyCharm/IntelliJ IDEA (оба рассматриваются в следующем разделе) в качестве IDE, но при этом понимаем, что лучший вариант зависит от решаемых вами задач и используемых языков программирования. В этой главе перечислены самые популярные приложения и их достоинства/недостатки.
Для Python не нужны инструменты сборки вроде Make, Java’s Ant или Maven, поскольку это интерпретируемый, а не компилируемый язык23, поэтому мы не будем рассматривать эти вопросы. Но в главе 6 опишем, как использовать Setuptools для упаковки проектов и Sphinx для сборки документации.
Мы также не будем рассматривать системы контроля версий, поскольку они не зависят от языка, но программисты, которые поддерживают реализацию Python, написанную на C (ссылочную), не так уж давно перешли с Mercurial на Git (см. PEP 512 (https://www.python.org/dev/peps/pep-0512/)). Оригинальное обоснование использования Mercurial в PEP 374 (https://www.python.org/dev/peps/pep-0374/) небольшое, зато представлено сравнение четырех вариантов, популярных в настоящее время: Subversion, Bazaar, Git и Mercurial.
Завершается глава кратким обзором современных способов управления интерпретаторами для воссоздания разных ситуаций, которые могут возникнуть при развертывании, на этапе кодирования.
Текстовые редакторы
Для написания кода Python подойдет любая программа, которая позволяет редактировать текст, однако выбор правильного редактора сэкономит вам несколько часов в неделю. Все текстовые редакторы, перечисленные в этом разделе, поддерживают подсветку синтаксиса и могут быть расширены с помощью надстроек таким образом, чтобы выполнять статическую проверку кода (с помощью средств контроля качества кода) и делать отладку.
В табл. 3.1 перечислены текстовые редакторы, которые нам нравятся (по убыванию предпочтения), и объясняется, почему разработчику следует выбрать именно этот редактор. Далее в главе кратко рассматривается каждый из них. В «Википедии» по адресу https://en.wikipedia.org/wiki/Comparison_of_text_editors приведена таблица, в которой детально сравниваются текстовые редакторы (поможет тем, кто ищет определенную функциональность).
Таблица 3.1. Первый взгляд на текстовые редакторы
Инструмент
Доступность
Причина использовать
Sublime Text
Открытый API/бесплатный пробный период.
OS X, Linux, Windows
Быстро работает и задействует небольшой объем памяти.
Способен работать с крупными файлами (> 2 Гбайт).
Расширения написаны на Python
Vim
ПО с открытым исходным кодом/можно вносить пожертвования.
OS X, Linux, Windows, Unix
Вам нравится Vi/Vim.
Предустановлен (во всяком случае Vi) на каждой ОС кроме Windows.
Может быть консольным приложением
Emacs
ПО с открытым исходным кодом/можно вносить пожертвования.
OS X, Linux, Windows, Unix
Вам нравится Emacs.
Расширения написаны на Lisp.
Может быть консольным приложением
TextMate
ПО с открытым исходным кодом/нужна лицензия.
Только для OS X
Отличный пользовательский интерфейс.
Практически все интерфейсы (статическая проверка кода/отладка/тестирование) предустановлены.
Хорошие инструменты от Apple, например интерфейс для xcodebuild (его можно найти в Xcode bundle)
Atom
ПО с открытым исходным кодом/бесплатный.
OS X, Linux, Windows
Расширения написаны на JavaScript/HTML/CSS.
Хорошая интеграция с GitHub
Code
Открытый API (в будущем)/бесплатный.
OS X, Linux, Windows (но Visual Studio, соответствующая IDE, работает только