OnWorks favicon

dh_python2 - Online in the Cloud

Run dh_python2 in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command dh_python2 that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator



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


dh_python2 -p PACKAGE [-V [X.Y][-][A.B]] DIR_OR_FILE [-X REGEXPR]


· if necessary, describe supported Python versions via X-Python-Version field in

· build-depend on python or python-all or python-all-dev (>= 2.6.6-3~),

· build module/application using its standard build system, remember to build
extensions for all supported Python versions (loop over pyversions -vr),

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

· add python2 to dh's --with option, or:

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

· call dh_python2 in the binary-* target,

· add ${python:Depends} to Depends

In order to support more than one Python version in the same binary package, dh_python2
(unlike dh_pycentral and dh_pysupport) creates symlinks to all supported Python versions
at build time. It means binNMU (or sourceful upload in case of architecture independent
packages) is required once a list of supported Python version is changed. It's faster and
more robust than its competitors, though.

dh_python2 tries to translate Python dependencies from requires.txt file to Debian
dependencies. Use debian/pydist-overrides or --no-guessing-deps option to override it if
the guess is incorrect. If you want dh_python2 to generate more strict dependencies (f.e.
to avoid ABI problems) create debian/python-foo.pydist file. See
/usr/share/doc/python-doc/README.PyDist (provided by python-doc package) for more
information. If the pydist file contains PEP386 flag or set of (uscan like) rules,
dh_python2 will make the depedency versioned (version requirements are ignored by

namespace feature
dh_python2 parses Egg's namespace_packages.txt files (in addition to --namespace command
line argument(s)) and drops empty __init__.py files from binary package. pycompile will
regenerate them at install time and pyclean will remove them at uninstall time (if they're
no longer used in installed packages). It's still a good idea to provide __init__.py file
in one of binary packages (even if all other packages use this feature).

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 is shipping Python files in some other directory, add another dh_python2 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 versions) for
a private directory that is checked by default, invoke dh_python2 with --skip-private
option and add another 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/python2.X/{site,dist}-packages/ directory that have extensions different 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 for all
requested Python versions (dh_install doesn't know about python's site- vs. dist-packages

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

debian directory is automatically removed from the path, so you can place your files in
debian/ directory and install them from this location (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.


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

· foo/bar.py 2.6- installs .../dist-packages/foo/bar.py for versions >= 2.6

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

· debian/*.py spam.egg 2.5 installs .../python2.5/site-packages/spam/egg/*.py files

pyremove files
If you want to remove some files installed by build system (from all supported Python
versions or only from a subset of these versions), add them to debian/pkg.pyremove file.


· *.pth removes .pth files from .../dist-packages/

· bar/baz.py 2.5 removes .../python2.5/site-packages/bar/baz.py

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 DEBPYTHON_SUPPORTED and/or
DEBPYTHON_DEFAULT env. variables.

Example: 2.5,2.7 limits the list of supported Python versions to Python 2.5 and Python


show program's version number and exit

-h, --help
show help message and exit

disable guessing other supported Python versions

disable guessing dependencies

do not remove any files from debug packages

do not rewrite shebangs

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

specify list of supported Python versions. See pycompile(1) for examples

exclude items that match given REGEXPR. You may use this option multiple times to
build up a list of things to exclude.

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

translate given requirements into Debian dependencies and add them to
${python:Depends}. Use it for missing items in requires.txt

translate given requirements into Debian dependencies and add them to

translate given requirements into Debian dependencies and add them to

use this option (multiple time if necessary) if namespace_packages.txt is not

ignore Egg's namespace declaration and --namespace option. This option will disable
removing (and recreating at install time) empty __init__.py files. Removing
namespace_packages.txt from egg-info directory has the same effect.

generate maintainer script that will remove byte code generated by python-central

use given command as shebang in scripts

do not translate shebangs into Debian dependencies

Use dh_python2 online using onworks.net services

Free Servers & Workstations

Download Windows & Linux apps

  • 1
    fre:ac - free audio converter
    fre:ac - free audio converter
    fre:ac is a free audio converter and CD
    ripper for various formats and encoders.
    It features MP3, MP4/M4A, WMA, Ogg
    Vorbis, FLAC, AAC, and Bonk format
    support, ...
    Download fre:ac - free audio converter
  • 2
    Matplotlib is a comprehensive library
    for creating static, animated, and
    interactive visualizations in Python.
    Matplotlib makes easy things easy and
    hard thing...
    Download Matplotlib
  • 3
    Write your chatbot logic once and
    connect it to one of the available
    messaging services, including Amazon
    Alexa, Facebook Messenger, Slack,
    Telegram or even yo...
    Download BotMan
  • 4
    Joplin is a free and open source
    note-taking and to-do application that
    can handle a large number of notes in
    Markdown format, organize them into
    notebooks and...
    Download Joplin
  • 5
    gerbv  a Gerber (RS-274X) viewer
    gerbv � a Gerber (RS-274X) viewer
    Gerbv is an open source Gerber file
    (RS-274X only) viewer. Gerbv lets you
    load several files on top of each other,
    do measurements on the displayed image,
    etc. ...
    Download gerbv � a Gerber (RS-274X) viewer
  • 6
    I/O performance Analysis Tool.
    Audience: Developers, Information
    Technology, Science/Research, System
    Administrators. User interface: Win32
    (MS Windows). Progr...
    Download Iometer
  • More »

Linux commands