0

我已经构建了一个包含 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 中?

谢谢,

亚历克斯

4

1 回答 1

0

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

在 debian/rules 中你需要调用 dh_pysupport。

这会抓取 setup.py 在构建机器上安装的所有文件

$(DESTDIR)/usr/lib/pythonX.Y/dist-packages/mymodule*

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

/usr/share/pyshared/mymodule*

最后,它向 postinst 脚本添加了对 update-python-modules 的调用,以确保该模块在目标机器上存在的每个 python 版本上都可用。

于 2013-03-11T11:03:15.747 回答