Python модули и C++

Любой, кто пишет код под Python и устанавливает дополнительные модули и расширения рано или поздно сталкивается с необходимостью наличия в системе C++ компилятора. Некоторые устанавливаемые модули не имеют, по разным причинам, в своих пакетах распространения бинарников. И если в системе отсутствует компилятор C++ то стандартная процедура установки пакета "pip install ..." завершается неудачей. В открытых системах на платформе Linux ситуация разрешается элементарным образом: из стандартного репозитория операционной системы устанавливается (как правило, при помощи одной-единственной команды) минимальный "пакет разработчика" - и все! Новые модули для Python после этого без проблем самостоятельно собираются и устанавливаются. Не надо больше ничего искать и волноваться по поводу того, что "я вааще не знаю Си!".

Лично я давно советую всем своим знакомым "выйти из Окон" и подобрать себе подходящий открытый дистрибутив на платформе Линукс. Но если Вы все еще работаете в "Окнах" и не слушаете добрых советов, то для Вас ситуация с установкой компилируемых модулей, в случае отстутствия на рабочей станции С++ будет сложнее. Самым легким вариантом решения будет поискать откомпилированные кем-то другим готовые бинарники. И чаще всего это удается сделать, но при этом надо следить за тем, чтобы версия готового бинарника была свежей сборки, и была получена из доверенного источника (без закладок и вирусов). Но даже это не гарантирует надежной работы вашего Python окружения. Очень часто установленные таким образом пакеты отлично работают если используются в одиночном режиме. Но стоит установить два-три таких пакета и начинаются проблемы - прекрасно работавшие поодиночке пакеты категорически отказываются взаимодействовать между собой.

Поэтому для установки отдельных пакетов Python на своей рабочей станции все-же надо иметь компилятор С++. Даже если вы не пишете под Си, это необходимо. Какой именно компилятор использовать? Для версий python 2.6-3.2 потребуется установить MS VC-9: Microsoft Visual C++ Compiler for Python 2.7, для python 3.3-3.4 потребуется MS VC-10 (MS Visual Studio 2010): Visual C++ 2010 Express. После установки вы можете использовать продукт в течение 30 дней. Для использования продукта по истечении 30 дней необходимо зарегистрироваться и получить бесплатный ключ продукта.

Предпочитающие открытое ПО могут для копиляции использовать MinGW. Понятно, что в этом случае придется выделить время на чтение мануалов. За то использование MinGW должно упрощать разработку мультиплатформенного ПО. При этом надо иметь ввиду, как написано на странице документации: "Not all extensions can be built with MinGW or Cygwin, but many can. Extensions most likely to not work are those that use C++ or depend on Microsoft Visual C extensions." Но в этом случает о мультиплатформенных прилжениях речь скорее всего не идет.

В заключение несколько ссылок:

Tags: