Ответ 1
К сожалению, нет никакого способа безумия. Имя в индекс пакета не зависит от имени модуля import
. Катастрофа некоторые пакеты разделяют имена модулей. Если вы установите оба варианта, ваше приложение будет разорваться с равными шансами. (Ruby тоже имеет эту проблему)
Упаковка в Python, как правило, ужасная. Основной причиной является то, что язык отправляется без менеджера пакетов. Ruby и Nodejs поставляются с полнофункциональными менеджерами пакетов Gem и Npm, а также развивают совлокальные сообщества, сосредоточенные вокруг GitHub. Npm делает публикацию пакетов так же просто, как и их установку. Nodejs прибыли в 2009 году и уже 14k пакетов. Почтенный индекс пакета Python содержит список 24k. Ruby Gems перечисляет 44 тыс. Пакетов.
К счастью, есть один достойный менеджер пакетов для Python, называемый Pip. Пип вдохновлен Ruby Gem, но ему не хватает некоторых важных функций (например, листинг пакетов и обновление en mass). Как ни странно, сам Pip сложный для установки. Установка на популярной 64-битной Windows требует создания и установки двух пакетов из исходного кода. Это большая просьба к любому новому программированию.
Разработчики Python не знают об этом разочаровании, потому что они являются опытными программистами, удобными для создания из источника, и используют Linux-дистрибутивы с упакованными модулями Python.
До тех пор, пока Python не отправится с менеджером пакетов, тысячи разработчиков не понапрасну будут тратить время на создание колеса.
Python 3 решает много проблем с упаковкой. Там не являются пакетами для Python 3.