Вызов функции в модуле после установки setup.py - PullRequest
2 голосов
/ 16 октября 2010

У меня есть программа / шутка, для работы которой требуется достаточно большая структура данных (словарь, для создания которого требуется несколько секунд), и я хотел бы создать его и вставить в каталог установки при запуске python setup.py install .

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

Вот как сейчас выглядит мой setup.py:

from distutils.core import setup

setup(...
    )

from phoneoops import utils

utils.get_hashed_dictionary(save=True)

1 Ответ

1 голос
/ 16 октября 2010

Я создал фиктивный файл setup.py как:

from distutils.core import setup
setup()
print 'after'

, и мой оператор печати печатается очень хорошо после выполнения python setup.py install.
Я попытался ввести недопустимую команду, например python setup.py xx, и послеprint не вызывается.

Вы уверены, что оно не вызывало исключение или SystemExit?

Когда я изменил этот простой пример на:

try:
    setup()
except SystemExit as e:
    print e
print 'after'

иrun python setup.py xx, оператор after работал нормально.

Edit:
Согласен, @AndiDog, это лучше (если по какой-то причине вы не * 1022)* хочу проглотить исключение):

try:
    setup()
finally:
    print 'after'
...