Pregunta

I've built a debian package containing a python module. The problem is that

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

show that all the files will be installed under

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

This means that the end-user who installs my deb package will need to be using exactly the same version of python as I am - yet I know that my module works fine on later versions too.

In my Makefile I have the following target:

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

Where setup.py is

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'],
      )

Is there some way I can edit either the setup.py file or the Makefile so that the resulting module is installed in a python-version neutral directory instead of /usr/lib/python2.6?

Thanks,

Alex

¿Fue útil?

Solución

I think I have found the answer now (thanks to the pointers from Tshepang):

In debian/rules you need to invoke dh_pysupport.

This grabs all the files installed by setup.py on the build machine in

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

and puts them into a non python-version specific location in the .deb file, namely

/usr/share/pyshared/mymodule*

finally, it adds a call to update-python-modules to the postinst script, which makes sure that the module is available on every version of python present on the target machine.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top