我有一个程序/笑话需要一个相当大的数据结构来运行,(一个需要几秒钟构建的字典)我想在运行时创建它并将其腌制到安装目录中 python setup.py 安装.
distutils.core 中的
setup() 看起来不应该退出,所以我想我可以导入我的模块并在调用 setup() 在 setup.py 中,但它似乎没有工作,即使安装确实工作。
这就是我的 setup.py 现在的样子:
from distutils.core import setup
setup(...
)
from phoneoops import utils
utils.get_hashed_dictionary(save=True)
请您参考如下方法:
我创建了一个虚拟 setup.py 作为:
from distutils.core import setup
setup()
print 'after'
我的打印语句在运行 python setup.py install 后打印得很好。
我尝试了一个无效的命令,如 python setup.py xx,但没有调用 after print。
您确定它没有引发异常或 SystemExit 吗?
当我将这个简单示例修改为:
try:
setup()
except SystemExit as e:
print e
print 'after'
并运行 python setup.py xx,after 语句运行良好。
编辑:
同意,@AndiDog,这样更好(除非出于某种原因你想要吞下异常):
try:
setup()
finally:
print 'after'
