[python] распространение пакетов
От: pykd_team  
Дата: 11.11.14 07:06
Оценка:
Доброго дня!

Есть небольшой проектик — extension для ванильного питона. Начал делать пакет для дистрибьюции — столкнулся с кучей проблем, интернет читал, всех ответов не нашел. Понимаю, что тема узкая, но вдруг кто-то сталкивался.

Итак:
проблема усугублена тем, что extension только для windows и соответственно распространять в исходниках пакет бессмысленно, так как на стандартной windows машине их не собрать. Соответственно, приходится делать бинарный дистрибутив ( тут отдельная песня ). Изрядно помучавшись, у меня получилось сделать egg, который нормально устанавливается с локального каталога ( через easy_install ). Теперь я хочу опубликовать его на pypi. Но pypi у меня отказывается брать egg. В документации они пишут, что pypi поддерживает wheel ( это еще интересная песенка о том, чем отличаются egg и wheel и зачем два разных одинаковых формата пакетов ). Ок, научился собирать wheel и он нормально загурзился на pypi и ставится через pip. Поэтому, первый вопрос:
1) На pypi вообще нельзя загузить egg? Но ведь easy_install благополучно с ним работает? Или он только source дистрибутивы умеет скачивать? И форма загрузки файлов через web на pypi тоже имеет тип файла egg, но загружать их также отказывается. Т.е egg вообзе нельзя загружаит или просто яйцо у меня неправильно получилось, например, какого нибудь параметра не хватает ( на pypi расширенной диагностики я не нашел ) ?
2) В целом Б-г с wheel сами, жить бы было можно, но у меня с ними никак не получается исправить один баг:
Мое расширение представляет собой один модуль ( pyd ) и в питоновских скриптах я его хочу использовать просто как import mymodule. При использовании egg все норм: в каталоге site-packages создаетсся подкаталог с распакованным содержимым egg ( я ставлю zip_safe=False), а в корне катлога в файле easy_install.pst прописывается к нему путь. В итоге питон находит модуль. При установке wheel ( собранного через тот же setup.py ) файлы распаковываются прямо в корень site-packages. Вроде все работает — но меня это бесит )), не хочется засирать общее пространство. В итоге получается дилемма: с одной стороны я научился вроде делать нормально устанавливаемые яйца, но не могу их выложить на pypi, с другой стороны wheel работают не так как мне хочется (((.

В порядке холивара, вся эта система какой то лютый ****** . Вроде как питон всегда провозглашал некие здравые подходы к разработке, все эти "просто лучше чем сложно", "явное лучше чем не явное" и.т.п, но с рапространениев пакетов что то явно пошло не так...

Да, проект с открытым кодом и абсолютно некоммерческий, так что если есть желающие поломать себе руки на голом энтузиазме, велкам!!!
http://pykd.codeplex.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.