dwww Home | Manual pages | Find package

DH_PYTHON3(1)               General Commands Manual              DH_PYTHON3(1)

NAME
       dh_python3 - calculates Python dependencies, adds maintainer scripts to
       byte compile files, etc.

SYNOPSIS
          dh_python3 -p PACKAGE [-V [X.Y][-][A.B]] DIR [-X REGEXPR]

DESCRIPTION
   QUICK GUIDE FOR MAINTAINERS
          • build depend on dh-python

          • build-depend  on  python3  (Python  application)  or   python3-all
            (Python module) or python3-all-dev (Python extension),

          • if   necessary,   describe   supported   Python   3  versions  via
            X-Python3-Version field in debian/control,

          • build module/application using its standard build system  (pybuild
            wrapper  recommended, see pybuild.1 for more details), remember to
            build extensions for all supported Python 3  versions  (loop  over
            py3versions -vr),

          • install  files to the standard locations, add --install-layout=deb
            to setup.py's install command if your package is using distutils,

          • add python3 to dh's --with option, or:

          • include   /usr/share/cdbs/1/class/python-distutils.mk    in    de-
            bian/rules and depend on cdbs (>= 0.4.90), or:

          • call dh_python3 in the binary-* target,

          • add ${python3:Depends} to Depends

   NOTES
   dependencies
       dh_python3  tries  to  translate Python dependencies from Requires-Dist
       entries in dist-info or requires.txt contents in egg-info to Debian de-
       pendencies.   In many cases, this works without any additional configu-
       ration because dh_python3 comes with a build-in mapping of Python  mod-
       ule  names to Debian packages that is periodically regenerated from the
       Debian archive. By default, the version information in the  Python  de-
       pendencies is discarded. If you want dh_python3 to generate more strict
       dependencies (e.g. to avoid ABI problems), or if the automatic  mapping
       does  not  work  correctly  for  your  package,  you  have  to  provide
       dh_python3 with additional rules for the translation of  Python  module
       to Debian package dependencies.

       For  a package python3-foo that depends on a package python3-bar, there
       are two files that may provide such rules:

       1. If the python3-foo source package ships with a  debian/py3dist-over-
          rides  file,  this  file  is  used by dh_python3 during the build of
          python3-foo.

       2. If   the   python3-bar   source   package   ships   with    a    de-
          bian/python3-bar.pydist  file  (and uses dh_python3), this file will
          be      included      in      the      binary       package       as
          /usr/share/dh-python/dist/cpython3/python3-bar.  During the build of
          python3-foo, dh_python3 will then find and use the file.

       Both    files     have     the     same     format     described     in
       /usr/share/doc/dh-python/README.PyDist.  If all you want is to generate
       versioned dependencies (and assuming that the python3-bar package  pro-
       vides  the pybar Python module), in most cases it will be sufficient to
       put the line pybar python3-bar; PEP386 into either of the above files.

   private dirs
       /usr/share/foo,      /usr/share/games/foo,       /usr/lib/foo       and
       /usr/lib/games/foo  private directories are scanned for Python files by
       default (where foo is binary  package  name).  If  your  package  ships
       Python  files  in  some other directory, add another dh_python3 call in
       debian/rules with directory name as an argument - you can use different
       set of options in this call. If you need to change options (f.e. a list
       of supported Python 3 versions) for a private directory that is checked
       by  default,  invoke  dh_python3 with --skip-private option and add an-
       other call with a path to this directory and new options.

   debug packages
       In  binary  packages  which  name  ends  with  -dbg,   all   files   in
       /usr/lib/python3/dist-packages/  directory that have extensions differ-
       ent than so or h are removed by default.  Use --no-dbg-cleaning  option
       to disable this feature.

   pyinstall files
       Files  listed  in debian/pkg.pyinstall file will be installed as public
       modules (i.e. into  .../dist-packages/  directory)  for  all  requested
       Python versions.

       Syntax: path/to/file [NAMESPACE] [VERSION_RANGE]

       debian  directory  is  automatically  removed from the path, so you can
       place your files in debian/ directory and install them from this  loca-
       tion  (if you want to install them in "debian" namespace, set NAMESPACE
       to debian). If NAMESPACE is set, all listed files will be installed  in
       .../dist-packages/NAMESPACE/ directory.

       Examples:foo.py  installs  .../dist-packages/foo.py  for  all supported
                Python versions

              • foo/bar.py 3.3- installs .../dist-packages/foo/bar.py for ver-
                sions >= 3.3

              • foo/bar.py spam installs .../dist-packages/spam/bar.py

              • debian/*.py  spam.egg  3.2  installs  .../python3.2/dist-pack-
                ages/spam/egg/*.py files

   pyremove files
       If you want to remove some public modules (i.e. files in .../dist-pack-
       ages/  directory)  installed by build system (from all supported Python
       versions or only from a subset of these  versions),  add  them  to  de-
       bian/pkg.pyremove file.

       Examples:*.pth removes .pth files from .../dist-packages/

              • bar/baz.py 3.2 removes .../python3.2/dist-packages/bar/baz.py

   bcep files
       Byte-compilation  exception  patterns  can be described in these files.
       Use it if you want py3compile to skip specific files. This is the  only
       way  to  skip  .py  files  in  …/dist-packages/ directory (as --exclude
       passed to py3compile in postinst is not used in  rtupdate  scripts  and
       thus this option cannot be used for non-private modules).

       re|-3.6|/usr/lib/python3/dist-packages/jinja2|.*/async(foo|bar).py will
       skip   byte-compilation   of    asyncfoo.py    and    asyncbar.py    in
       /usr/lib/python3/dist-packages/jinja2/  directory  for each interpreter
       that doesn't support async keyword (introduced in Python 3.6).

       If you want to skip byte-compilation in a subdirectory for  all  inter-
       preters, use: dir|-4.0|/usr/lib/python3/dist-packages/foo/tests/.  VER-
       SION_RANGE (-4.0 in the example) is described in README.PyDist file.

       debian/python3-foo.bcep file from source package will  be  included  in
       the binary package as /usr/share/python3/bcep/python3-foo.bcep

   overriding supported / default Python versions
       If  you  want to override system's list of supported Python versions or
       the default one (f.e. to build a package  that  includes  symlinks  for
       older version of Python or compile .py files only for given interpreter
       version),   you   can   do   that   via   DEBPYTHON3_SUPPORTED   and/or
       DEBPYTHON3_DEFAULT env. variables.

       Example: 3.2,3.3 limits the list of supported Python versions to Python
       3.2 and Python 3.3.

OPTIONS
       --version
              show program's version number and exit

       -h, --help
              show help message and exit

       --no-guessing-deps
              disable guessing dependencies

       --no-dbg-cleaning
              do not remove any files from debug packages

       --no-ext-rename
              do not add magic tags nor multiarch  tuples  to  extension  file
              names

       --no-shebang-rewrite
              do not rewrite shebangs

       --skip-private
              don't check private directories

       -v, --verbose
              turn verbose mode on

       -i, --indep
              act on architecture independent packages

       -a, --arch
              act on architecture dependent packages

       -q, --quiet
              be quiet

       -p PACKAGE, --package=PACKAGE
              act on the package named PACKAGE

       -N NO_PACKAGE, --no-package=NO_PACKAGE
              do not act on the specified package

       --remaining-packages
              Do  not  act on the packages which have already been acted on by
              this command earlier in the same override.

       -V VERSION_RANGE
              specify list of supported Python 3 versions.  See  py3compile(1)
              for examples

       -X REGEXPR, --exclude=REGEXPR
              exclude  items that match given REGEXPR. You may use this option
              multiple times to build up a list  of  things  to  exclude  from
              byte-compilation in private dirs. See also bcep files.

       --compile-all
              compile all files from given private directory in postinst/rtup-
              date not just the ones provided by the package (i.e. do not pass
              the --package parameter to py3compile/py3clean)

       --accept-upstream-versions
              accept  upstream  versions while translating Python dependencies
              into Debian ones

       --depends=DEPENDS
              translate given requirements into Debian  dependencies  and  add
              them  to  ${python3:Depends}.  Use  it  for missing items in re-
              quires.txt / Requires-Dist.

       --depends-section=SECTION
              translate requirements from given extra sections of  requres.txt
              /  Requires-Dist  into  Debian  dependencies  and  add  them  to
              ${python3:Depends}. May be repeated for multiple sections.

       --recommends=RECOMMENDS
              translate given requirements into Debian  dependencies  and  add
              them to ${python3:Recommends}

       --recommends-section=SECTION
              translate requirements from given extra sections of requires.txt
              /  Requires-Dist  into  Debian  dependencies  and  add  them  to
              ${python3:Recommends}. May be repeated for multiple sections.

       --suggests=SUGGESTS
              translate  given  requirements  into Debian dependencies and add
              them to ${python3:Suggests}

       --suggests-section=SECTION
              translate requirements from given extra sections of requires.txt
              /  Requires-Dist  into  Debian  dependencies  and  add  them  to
              ${python3:Suggests}. May be repeated for multiple sections.

       --requires=FILENAME
              translate requirements from given file(s) into Debian  dependen-
              cies and add them to ${python3:Depends}

       --shebang=COMMAND
              use given command as shebang in scripts

       --ignore-shebangs
              do not translate shebangs into Debian dependencies

SEE ALSO/usr/share/doc/python3/python-policy.txt.gz/usr/share/doc/dh-python/README.PyDistpybuild(1)py3compile(1), py3clean(1)pycompile(1), pyclean(1)http://deb.li/dhp3 - most recent version of this document

AUTHOR
       Piotr Ożarowski, 2012-2013

                                                                 DH_PYTHON3(1)

Generated by dwww version 1.15 on Thu Jun 20 17:09:50 CEST 2024.