Как запустить пост-сборку с помощью setuptools / distutils - PullRequest
6 голосов
/ 14 сентября 2009

Я создаю приложение с помощью py2app / setuptools, поэтому, как только он создаст пакет приложений, я хочу предпринять некоторые действия с папкой dist, например, создать установщик / загрузить его.

Есть ли способ? Я нашел решение после установки, но без сборки

В качестве альтернативы я могу вызвать 'python setup.py py2app' из моего собственного скрипта и сделать это, но было бы лучше, если бы это можно было сделать в setup.py

Ответы [ 3 ]

4 голосов
/ 12 ноября 2009

I ответил на аналогичный вопрос вчера о подклассах distutils.core.Command .

Суть этого в том, что, делая это, вы можете точно контролировать поведение каждого этапа процесса подготовки и создавать свои собственные команды, которые могут выполнять практически все, что вы только можете придумать.

Пожалуйста, посмотрите на этот ответ, так как я думаю, что он вам поможет.

0 голосов
/ 24 сентября 2009

Не могли бы вы уточнить, что вы пытаетесь сделать?

выполнить некоторые действия с папкой dist, например, создать установщик / загрузить его.

Когда вы говорите «создать установщик», вы имеете в виду создание дистрибутива для пакета? И когда вы говорите «загрузить», вы имеете в виду «загрузить в Pypi»? или где-то еще?

Я нашел решение после установки, но без сборки

Это хуки / обратные вызовы py2app?

python setup.py py2app

Это не соглашение о том, как используется distutils. Обычно это python setup.py install.

Ответ:

py2app target - это папка dist, которую я хочу упаковать, используя мой скрипт установки, и загрузить на мой сайт

Edit:

Итак, вы создали пакет, который использует distutils с setup.py.

Когда вы запускаете setup.py, он создает дистрибутивы для этого файла и помещает их в папку / dist.

Теперь вы хотите загрузить встроенный файл на ваш сайт.

Для этого вам нужен другой инструмент. Что-то вроде ткань .

Вы можете использовать fabric для создания скрипта, который будет выполнять команду сборки и затем загружать собранные файлы на ваш сервер.

0 голосов
/ 14 сентября 2009

Вероятно, есть способы сделать это с помощью setuptools или distutils, но они, вероятно, будут довольно хакерскими. Я настоятельно рекомендую использовать один из следующих инструментов, если вы хотите сделать что-то вроде этого:

Возможно, перейти к Paver легче, поскольку вы, вероятно, сможете использовать все существующие файлы setup.py.

...