在setup.py安装后调用模块中的函数

时间:2010-10-16 00:18:50

标签: python distutils setup.py

我有一个需要一个相当大的数据结构来运行的程序/笑话(一个需要几秒钟构建的字典),我想在运行{{1时创建并将它腌制到安装目录中}}

python setup.py install中的{p> setup()看起来不应该退出,所以我认为我可以导入我的模块并在setup.py中调用distutils.core后调用该函数,但它似乎没有工作,即使安装 工作。

这就是我的setup.py现在的样子:

setup()

1 个答案:

答案 0 :(得分:1)

我创建了一个虚拟的setup.py:

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

我的print语句在运行python setup.py install后打印就好了 我尝试了一个像python setup.py xx这样的无效命令,后期打印没有被调用。

你确定它没有引发Exception或SystemExit吗?

当我将这个简单的例子修改为:

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

并运行python setup.py xx,后面的语句运行正常。

修改
同意,@ AndiDog,这是更好的(除非出于某种原因你希望吞下异常):

try:
    setup()
finally:
    print 'after'