将python模块安装到python-version中性位置

时间:2013-03-08 11:29:40

标签: python debian python-module dpkg

我已经构建了一个包含python模块的debian包。 问题是

dpkg-deb -c python-mymodule_1.0_i386.deb

显示所有文件都将安装在

/usr/lib/python2.6/dist-packages/mymodule*

这意味着安装我的deb软件包的最终用户需要使用与我完全相同的python版本 - 但我知道我的模块也可以在以后的版本中正常工作。

在我的Makefile中,我有以下目标:

install:
    python setup.py install --root $(DESTDIR) $(COMPILE) --install-layout=deb

其中setup.py是

from distutils.core import setup           
setup(name='mymodule',
      version='1.0',
      description='does my stuff',
      author='Me',
      author_email='myemail@localhost',
      url='http://myurl/',
      packages=['mymodule'],
      )

有没有什么方法可以编辑setup.py文件或Makefile,以便生成的模块安装在python-version中性目录而不是/usr/lib/python2.6?

谢谢,

亚历

1 个答案:

答案 0 :(得分:0)

我想我现在已经找到了答案(感谢Tshepang的指示):

在debian / rules中,您需要调用dh_pysupport。

这将抓取

中构建计算机上setup.py安装的所有文件
$(DESTDIR)/usr/lib/pythonX.Y/dist-packages/mymodule*

并将它们放入.deb文件中的非python版本特定位置,即

/usr/share/pyshared/mymodule*

最后,它将update-python-modules调用添加到postinst脚本中,这样可以确保模块在目标机器上存在的每个版本的python上都可用。