pypiserver
A minimal PyPI server for use with pip/easy_install.
What it is and what it does
pypiserver is a lightweight PyPI-compatible package index that runs on your own infrastructure, allowing pip, setuptools, and twine to upload and download packages as if connecting to the official PyPI. It serves packages from regular filesystem directories and implements the same interfaces as PyPI, so standard Python packaging tools work without modification.
The server is built on bottle and supports uploading wheels, source distributions, eggs, and PGP signatures via pip, setuptools, twine, or direct file copy. It's designed for teams and organizations that need a private package repository without the complexity of the official Warehouse software, and it can be deployed standalone, behind a reverse proxy, or as a systemd service.
Use it for:
- Host proprietary or internal packages for a team without uploading to public PyPI
- Create an offline package cache to speed up deployments in air-gapped environments
- Set up a staging index for testing package uploads before releasing to public PyPI
- Serve pre-built wheels for legacy or specialized dependencies in a corporate environment
- Mirror a subset of PyPI packages for faster local access during development
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Runs a minimal PyPI-compatible package server that pip and setuptools can install from, serving wheels, source distributions, and eggs from local directories.
Yes. pypiserver is production-stable, actively maintained, has no known vulnerabilities, and solves a real problem with minimal dependencies and low installation friction. Install it if you need a private or local package index; it's the standard lightweight choice for this use case.
Install
pypiserver on PyPI
pip
pip install pypiserveruv
uv add pypiserverpoetry
poetry add pypiserverInstalling pypiserver
Before you install
Low friction installation with a pure-Python wheel and only four runtime dependencies. Actively maintained with recent commits and a stable release cadence; last release 185 days ago with active repository.
License in practice
Dual-licensed under zlib/libpng and MIT (both permissive); you can use and modify freely in commercial and private contexts with minimal restrictions.
Quickstart
pip install pypiserver
pypiserver run ~/packages
Requires Python 3.10 or later; PyPy3 is supported.
Verify before relying
- Whether the server handles authentication and authorization for multi-user deployments
- Performance characteristics when serving thousands of packages
- Whether HTTPS/TLS is supported natively or requires a reverse proxy
Package facts
| License | not declared (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — pip, packaging, importlib_resources, legacy-cgi |
| Maintenance | actively maintained — 185 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 898,219/month — #4,783 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pypiserver-2.4.1-py2.py3-none-any.whl
Tags
More Build Tools packages
Provides reusable utilities for Python…
permissive · top 100 on PyPI
tqdmWraps any iterable to display a real-time…
copyleft · top 100 on PyPI
pippip is the standard installer for Python…
permissive · top 100 on PyPI
hatchlingHatchling is a standards-compliant Python build…
permissive · top 100 on PyPI
grpcio-toolsGenerates Python gRPC service stubs and message…
permissive · top 1,000 on PyPI
pre-commitpre-commit is a framework for installing and…
permissive · top 1,000 on PyPI
distributeDistribute is a legacy compatibility wrapper…
permissive · top 15,000 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
twineTwine uploads Python source and binary…
permissive · top 1,000 on PyPI
pip-hello-worldA minimal test package demonstrating setuptools…
permissive · top 15,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
rangehttpserverA drop-in replacement for Python's…
permissive · top 5,000 on PyPI
servestaticServeStatic serves static files efficiently…
permissive · top 15,000 on PyPI
pproxypproxy is an asynchronous proxy server that…
permissive · top 15,000 on PyPI