Skip to main content

Overview

The mod_wsgi-httpd package is a companion to mod_wsgi-standalone. It downloads, compiles and installs a private copy of the Apache HTTP Server inside your Python environment, which mod_wsgi-standalone then builds mod_wsgi against and runs mod_wsgi-express on top of.

mod_wsgi-standalone is the alternative to a regular pip install mod_wsgi for hosts that need their own Apache/httpd install: either because no system Apache is available, or because using the system Apache is not desirable. Typical cases are managed hosts where you have no root access to install system packages, and container base images that ship Python but not Apache or its development headers.

You normally do not need to install mod_wsgi-httpd yourself; pip install mod_wsgi-standalone declares it as a dependency and pip will pull in a compatible version automatically.

Note: If your operating system’s Apache and the matching Apache development packages are available, prefer those over mod_wsgi-standalone. Building mod_wsgi-httpd compiles Apache, APR, APR-util and PCRE2 from source, which can take several minutes; if pip install -v mod_wsgi-standalone looks like it is hanging, it is almost certainly still compiling mod_wsgi-httpd.

The version of mod_wsgi-httpd is the version of the Apache HTTP Server it installs, followed by a build number. For example, version 2.4.68.2 is the second build of this package for Apache 2.4.68. Each release of mod_wsgi-standalone requires one exact version of mod_wsgi-httpd, so the Apache version you get is decided by the mod_wsgi-standalone release you install.

Listing mod_wsgi-httpd as a separate dependency

Use mod_wsgi-standalone in a requirements.txt file, or in the dependencies of a pyproject.toml file. Listing mod_wsgi-httpd and mod_wsgi as two separate dependencies does not give the same result, for two reasons:

  • mod_wsgi is compiled against mod_wsgi-httpd, so mod_wsgi-httpd has to be installed before mod_wsgi is built. When both are named in the one pip install command, or the one requirements file, pip builds mod_wsgi first.

  • Packaging tools build each package in an isolated environment by default, and a package installed in the target environment cannot be seen from inside it.

The installation succeeds either way, which makes the problem easy to miss. If the host has some other Apache installation, mod_wsgi is built against that and mod_wsgi-httpd goes unused. Otherwise the result can be a mod_wsgi-express which fails when started.

If you do need to list them separately, and you use uv, name mod_wsgi-httpd as an extra build dependency of mod_wsgi in pyproject.toml, using the same version in both places:

[project]
dependencies = [
    "mod_wsgi-httpd==2.4.68.2",
    "mod_wsgi",
]

[tool.uv.extra-build-dependencies]
mod-wsgi = ["mod_wsgi-httpd==2.4.68.2"]

With pip it takes separate commands, the last with build isolation disabled, which in turn needs setuptools to be installed already:

pip install setuptools
pip install mod_wsgi-httpd
pip install --no-build-isolation mod_wsgi

This cannot be expressed in a requirements file, as pip does not accept the --no-build-isolation option there.

To check which Apache mod_wsgi-express is going to run:

python -c "from mod_wsgi.express import apxs_config; print(apxs_config.HTTPD)"

The path printed should be inside the mod_wsgi_packages/httpd directory of your Python environment.

Documentation

Documentation for mod_wsgi, mod_wsgi-standalone and mod_wsgi-express lives at https://www.modwsgi.org/. Pages of particular relevance to mod_wsgi-httpd users:

  • Installation from PyPI covers pip install mod_wsgi, the mod_wsgi-express command, and the companion mod_wsgi-standalone package.

  • mod_wsgi-express quickstart covers running mod_wsgi-express for a WSGI application in production or in a container.

Metadata

Release files for mod-wsgi-httpd 2.4.68.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mod-wsgi-httpd 2.4.68.2
File Size Uploaded
mod_wsgi_httpd-2.4.68.2.tar.gz 14.7 MB Details

Release files / mod_wsgi_httpd-2.4.68.2.tar.gz

Download URL mod_wsgi_httpd-2.4.68.2.tar.gz
Size 14.7 MB
Tags Source
SHA-256 checksum
How to use checksums
3166fe8630bfc7a48b0bda1b8ba58f3fdd9f728a34137a13b959b71d06fe6fea
BLAKE2b-256 checksum
How to use checksums
a05b20b2731a39f167d78041e91a03f8659b8bcad811c9346a4ecae4def64f66
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page