参考 setuptools 重新设计