Python的setup.py:如何为不同平台安装不同文件

5 投票
1 回答
2583 浏览
提问于 2025-04-17 03:24

我正在写一个跨平台的包,这个包需要为不同的平台包含不同的二进制文件,比如Linux、MAC OS、Windows,甚至是32位和64位的Windows。

我希望我的包的setup.py能够根据平台安装不同的二进制数据文件。问题是,我需要把所有平台的数据文件都包含在包里,虽然它们可能有相同的名字,但内容却不一样。

有没有人能建议我如何使用distutils或setuptools的setup.py来实现这个?

1 个回答

2

这其实不太难,至少在简单的情况下是这样。例如,你可以看看这个uncertainties Python包的setup.py文件是怎么做的(它根据Python的版本选择安装目录,但在你的情况下,你只需要检查sys.platform等信息就可以了)。

关键的代码行是

if sys.version_info >= (2, 5):
    package_dir = 'uncertainties-py25'
else:
    package_dir = 'uncertainties-py23'

还有

distutils.core.setup(
    …
    # Where to find the source code:
    package_dir={'uncertainties': package_dir},
    …
)

撰写回答