4

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

4

1 回答 1

8

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

如果你在你的 中使用setuptools(或者它的 fork,distributesetup.py,你可以指定在安装你的包时必须安装的包setup_requires

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

解决方法是在调用定义条目Distribution之前创建一个单独的对象:setupsetup_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(...)
于 2012-08-21T19:40:32.667 回答