Python / Debian package dependencies

Steven Samuel Cole steven.samuel.cole at gmail.com
Fri Nov 21 17:09:10 EST 2008


That's exactly the piece of information I needed! :-)

The control file created by setdeb (stdeb_run_setup, to be precise) 
looks like this (some lines will get wrapped):

Source: <my package name>
Maintainer: <my name> <my email address>
Section: python
Priority: optional
Build-Depends: python-setuptools (>= 0.6b3-1), python-all-dev (>= 
2.3.5-11), debhelper (>= 5.0.38), python-central (>= 0.5.6)
Standards-Version: 3.7.2
XS-Python-Version: all

Package: python-<my package name>
Architecture: all
Depends: ${python:Depends}
Recommends:
Suggests:
XB-Python-Version: ${python:Versions}
Provides: ${python:Provides}
Description: <my description>

So apparently, stdeb adds setuptools by itself already, but it does not 
add the dependency packages I specified in setup.py.

When I now append python-psycopg2 (>= 2.0.6-3) to the Depends: copy the 
.deb file to the virtual machine and run sudo dpkg -i python-<my package 
name>-all.deb, I get the following output:

Selecting previously deselected package python-<my package name>.
(Reading database ... 17508 files and directories currently installed.)
Unpacking python-<my package name> (from python-<my package 
name>_0.0.1-4927-1_all.deb) ...
dpkg: dependency problems prevent configuration of python-inro-marvin-setup:
  python-<my package name> depends on python-psycopg2 (>= 2.0.6-3); however:
   Package python-psycopg2 is not installed.
dpkg: error processing python-<my package name> (--install):
  dependency problems - leaving unconfigured
Errors were encountered while processing:
  python-<my package name>


My conclusions:

1. I must use a 'higher-level' tool than dpkg to install the package 
which automatically resolves and installs dependency packages. There has 
  got to be a way to use apt-get for .deb files which do not reside 
(yet) in a repository.

2. stdeb does not seem to 'transform' dependencies specified in setup.py 
into dependencies in its output files. There seems to be a mailing list 
for stedb at http://mail.python.org/mailman/listinfo/distutils-sig. I'll 
try there.

Thanks for your help!

Cheers,

Steve


Stephane Bulot schrieb:
> I'm not familiar with stdeb, but dpkg-buildpackage needs a file called 
> "control". This is this file that will be used to generate deb archive 
> with the good dependancies. Into this file, there are two fields, 
> Build-Depends and Depends, that give to dpkg-buildpackage what are the 
> package dependancies.
> Check this "control" file content, you should have psycopg2 and 
> setuptools (if it is really a dependancy) in the Depends field. If it 
> not the case, do it manually. Do not forget to check and notify the 
> version of this dependancies.
> Regards.
> Stephane
> 
> 2008/11/21 Steven Samuel Cole <steven.samuel.cole at gmail.com 
> <mailto:steven.samuel.cole at gmail.com>>
> 
>     Hey Paul
> 
>     thanks for your reply! :-)
> 
>     2008/11/21 Paul Boddie <paul at boddie.org.uk <mailto:paul at boddie.org.uk>>:
>      > Are you saying that psycopg2 needs setuptools for the setup.py script
>      > to work? This isn't generally the case (or wasn't), but maybe the
>      > "entry point" is a setuptools thing which would then demand that
>      > software's presence.
> 
>     Not exactly. My package requires psycopg2 to run and (from what it
>     looks like to me) setuptools must be available in order to use its
>     installation mechanism (setup.py, entry points, etc.)
> 
>      > How does stdeb know which package provides psycopg2? I'm not really
>      > familiar with stdeb - I write my own packaging files - but might
>     it be
>      > the case that you need to specify python-psycopg2 instead?
> 
>     I tried python-psycopg2, but that caused a ValueError in stdeb about a
>     'parenthesized list' -psycopg2.
>     By trial & error I found out that I seem to have to use the package
>     name without the python- bit, because then stdeb does run without
>     error.
> 
>     If the name was really the issue, I would at least expect stdeb to
>     report an error about an unknown package or so...
> 
>     Cheers,
> 
>     Stefan
> 
>     2008/11/21 Steven Samuel Cole <steven.samuel.cole at gmail.com
>     <mailto:steven.samuel.cole at gmail.com>>:
>      > Hey Paul
>      >
>      > thanks for your reply! :-)
>      >
>      > 2008/11/21 Paul Boddie <paul at boddie.org.uk
>     <mailto:paul at boddie.org.uk>>:
>      >> Are you saying that psycopg2 needs setuptools for the setup.py
>     script
>      >> to work? This isn't generally the case (or wasn't), but maybe the
>      >> "entry point" is a setuptools thing which would then demand that
>      >> software's presence.
>      >
>      > Not exactly. My package requires psycopg2 to run and (from what it
>      > looks like to me) setuptools must be available in order to use its
>      > installation mechanism (setup.py, entry points, etc.)
>      >
>      >> How does stdeb know which package provides psycopg2? I'm not really
>      >> familiar with stdeb - I write my own packaging files - but might
>     it be
>      >> the case that you need to specify python-psycopg2 instead?
>      >
>      > I tried python-psycopg2, but that caused a ValueError in stdeb
>     about a
>      > 'parenthesized list' -psycopg2.
>      > By trial & error I found out that I seem to have to use the package
>      > name without the python- bit, because then stdeb does run without
>      > error.
>      >
>      > If the name was really the issue, I would at least expect stdeb to
>      > report an error about an unknown package or so...
>      >
>      > Cheers,
>      >
>      > Stefan
>      >
>     --
>     http://mail.python.org/mailman/listinfo/python-list
> 
> 




More information about the Python-list mailing list