Ниже список 30 наиболее используемых «базовых модулей», основанный на количестве скачиваний с проекта PyPI. Эти результаты основаны на 11,204 загруженных пакетах. Подробности ниже.

Некоторые наблюдения:
В далеком 2007 я написал простой скрипт, который считает импорт модулей в коде. Я использовал его для генерации статистики. Одну или две недели назад я решил повторить этот эксперимент – и посмотрите разницу между 2007 и 2011.
Я начал работать на своим старым кодом и решил обновить его. Анализ импорта в коде не является простой задачей, как кажется на первый взгляд. Я думал использовать tokenize и parser модули, но отказался от этой идеи. Использование parser делало мой код зависимым от версий, и через некоторое время я решил использовать tokenize, т.к. громоздкое регулярное выражение для этой цели у меня уже было.
Input: PyPI и исходные коды стандартной библиотеки версии 2.7. Я написал простой скрипт (cheese_getter.py) для обработки модулей. Он читал страницу PyPI, и затем использовал easy_install для выборки каждого модуля. Поскольку в проекте PyPI более 13 000 модулей, это заняло некоторое время.
Parsing: Я написал простой код поиска «import x» и «from x import y» выражений в коде. Не обошлось без трудностей: выражения «from x import a, b», «from. import bla» и
должны также поддерживаться.Я конвертировал каждое выражение импорта в серию модулей с точкой. Например, “import a.b” был заменен на “a” и “a.b”, а “from b import c,d” заменен на “b”, “b.c”, и “b.d”.
Processing: Я создал три типа результата.
Я думаю, что третий вариант наиболее информативен.
Code: Full code is available.
Результаты

Обсуждение
Некоторые наблюдения:
- Похоже, что django набрал «некоторую популярность», и Zope сильно поднялся в списке.
- Количество проектов, использующих unittest, сильно удручает, особенно по сранению с setuptools.
- optparse 1875 vs. getopt 515.
- cPickle 690 vs. pickle 598.
- simplejson 760 vs. json 593.
В прошлом
В далеком 2007 я написал простой скрипт, который считает импорт модулей в коде. Я использовал его для генерации статистики. Одну или две недели назад я решил повторить этот эксперимент – и посмотрите разницу между 2007 и 2011.
Я начал работать на своим старым кодом и решил обновить его. Анализ импорта в коде не является простой задачей, как кажется на первый взгляд. Я думал использовать tokenize и parser модули, но отказался от этой идеи. Использование parser делало мой код зависимым от версий, и через некоторое время я решил использовать tokenize, т.к. громоздкое регулярное выражение для этой цели у меня уже было.
Методология
Input: PyPI и исходные коды стандартной библиотеки версии 2.7. Я написал простой скрипт (cheese_getter.py) для обработки модулей. Он читал страницу PyPI, и затем использовал easy_install для выборки каждого модуля. Поскольку в проекте PyPI более 13 000 модулей, это заняло некоторое время.
Parsing: Я написал простой код поиска «import x» и «from x import y» выражений в коде. Не обошлось без трудностей: выражения «from x import a, b», «from. import bla» и
from bla import \
some_module\
some_module2
должны также поддерживаться.Я конвертировал каждое выражение импорта в серию модулей с точкой. Например, “import a.b” был заменен на “a” и “a.b”, а “from b import c,d” заменен на “b”, “b.c”, и “b.d”.
Processing: Я создал три типа результата.
- Полное количество импортов.
- Количество пакетов, импортирующих модуль.
- Количество пакетов, импортирующих модуль, только для первого модуля в записи с точкой.
Я думаю, что третий вариант наиболее информативен.
Code: Full code is available.