跨几个setup.py脚本共享代码的最佳方法?

时间:2012-08-21 18:31:17

标签: python setuptools

我有几个我正在处理的软件包,我想在他们的setup.py脚本之间共享代码。有没有什么好方法可以做到这一点,还是代码重复我唯一的选择?

1 个答案:

答案 0 :(得分:8)

通常setup.py是分发不同包的入口点。因此,很难在这些软件包之间共享代码。

如果您在setup.py中使用setuptools(或它的分叉distribute),则可以指定在安装软件包时必须安装的软件包setup_requires条目。

不幸的是,您的setup.py先被执行;解析setup_requires行后,其中列出的额外软件包将在本地安装,但这可能为您的需求太晚。

解决方法是在调用定义Distribution条目的setup之前创建单独的setup_requires对象:

import setuptools

setuptools.dist.Distribution(dict(setup_requires='yoursharedsetuppackage'))
# `setup_requires` is parsed and acted upon immediately; from here on out
# the yoursharedsetuppackage is installed and importable.

import yoursharedsetuppackage

setup(...)
相关问题