安装pure-python包作为另一个依赖于平台的包的子包

时间:2013-04-04 22:11:20

标签: python centos rpm distutils setup.py

我有一个pure-python包B和一个依赖于平台的包A(即A包含C-extension模块)。我希望将B安装为A的子包,并且预期的层次结构就像是,

<python-libdir>/site-packages/
    + <A>
        + __init__.py
        + _<A>.so
        + <B>
            + __init__.py
            + _<B>.py

由于许可和其他问题,我需要将AB放在不同的项目中,并为每个项目创建单独的distutils脚本(又名。setup.py)它们。

问题是A与平台有关。当我(rpm-)在CentOS / RHEL(x86_64)系统上封装<A>时(即通过$ python setup.py bdist_rpm),它会安装到,

/usr/lib64/python2.6/site-packages/<A>

B是一个纯python包,默认情况下,它的内容是,

/usr/lib/python2.6/site-packages/<A>/<B>

在为--force-arch构建rpm包时,我尝试了<B>选项,即

$ python setupB.py bdist_rpm --force-arch x86_64

这将生成B的rpm包,其文件名中包含x86_64(而不是noarch),但它仍会<B>安装到/usr/lib/...,不是所需的/usr/lib64/...

任何人都可以建议一种简单的方法来配置<B>(即可能在setup.pysetup.cfg中设置一些参数),以便它安装到依赖于平台的libdir(即{{1 }})?

编辑:我知道/usr/lib64/...命令的--install-purelib选项,即

install

它确实实现了所需的包层次结构。但$ python setupB.py install --install-purelib=/usr/lib64/python2.6/site-packages 的{​​{1}}命令似乎没有等效选项。

有没有办法在bdist_rpmdistutils中指定此--install-purelib选项?

0 个答案:

没有答案