在setup.py安装后调用模块中的函数
我有一个程序/笑话,需要一个比较大的数据结构来运行(一个字典,构建需要几秒钟),我想在运行 python setup.py install
时把它创建并保存到安装目录里。
distutils.core
中的 setup()
看起来不应该退出,所以我想在 setup()
之后直接导入我的模块并调用函数,但似乎不太奏效,尽管安装是 成功 的。
这是我现在的 setup.py 文件的样子:
from distutils.core import setup
setup(...
)
from phoneoops import utils
utils.get_hashed_dictionary(save=True)
1 个回答
1
我创建了一个简单的 setup.py 文件,内容如下:
from distutils.core import setup
setup()
print 'after'
然后我运行 python setup.py install
后,打印语句正常输出。
我试了一个无效的命令,比如 python setup.py xx
,结果打印语句没有被调用。
你确定没有抛出异常或者系统退出吗?
当我把这个简单的例子修改成:
try:
setup()
except SystemExit as e:
print e
print 'after'
然后运行 python setup.py xx
,打印语句正常执行。
编辑:
同意,@AndiDog,这样更好(除非你有某种原因想要忽略异常):
try:
setup()
finally:
print 'after'