setup.py, setup () плюс некоторые другие вещи - PullRequest
1 голос
/ 26 августа 2011

setup.py может содержать любой код Python, кроме вызова функции setup (), я протестировал его с помощью следующего фрагмента:

from setuptools import setup

setup(name='MyPackage',
      packages=['mypackage'])

print "After setup()"

Оператор print был выполнен нормально. Я проверял это, потому что команда ( python setup.py install ) заставила меня усомниться: D. В любом случае ... Должен ли я безбоязненно обращаться с setup.py как с произвольным сценарием, который обрабатывает все мои потребности в установке?

Фон выглядит примерно так: я пишу пакет Python, который работает как отдельная программа, он не предназначен для импорта. В disutils я нашел почти все, что мне нужно для обработки деталей установки, таких как копирование скрипта в системный путь, копирование дополнительных файлов данных, создание каталогов и т. Д. Но все еще есть некоторые процедуры, которые выходят за рамки disutils, например, системные вызовы.

Должен ли я просто вставить этот дополнительный код, который мне нужен, в setup.py ?

Любой вклад или дальнейшие советы приветствуются.

Спасибо заранее.

Ответы [ 3 ]

1 голос
/ 26 августа 2011

Это последнее сообщение в блоге должно ответить на большинство ваших вопросов:

http://tarekziade.wordpress.com/2011/08/19/5-tips-for-packaging-your-python-projects/

Много работы, но пока недоступно, относительно упаковки в мире Python.

0 голосов
/ 18 сентября 2014

Если во время выполнения setup () произойдет ошибка, программа остановится и дальнейший код не будет выполнен. Но вы все равно можете захотеть выполнить дополнительный код. В этом случае используйте:

from setuptools import setup

try:
    setup(name='MyPackage',
          packages=['mypackage'])

finally:
    print "After setup()"
0 голосов
/ 26 августа 2011

Возможно, вы захотите взглянуть на http://paver.github.com/paver/,, что делает расширение distutils с некоторыми специфическими для проекта задачами быстрым.

...