pip2pi
pip2pi builds a PyPI-compatible package repository from pip requirements
What it is and what it does
pip2pi is a command-line tool that downloads Python packages and their dependencies, then builds a PyPI-compatible package index suitable for offline or private use. It wraps pip's download functionality and generates a simple HTML index structure that pip can read, allowing you to serve packages from your own HTTP server or use them locally via file:// URLs.
The tool is designed for scenarios where PyPI availability is unreliable, packages are removed from PyPI, or you need a private mirror for internal distribution. It supports downloading from requirements files, specific package versions, or URLs, and can push the resulting index to a remote server via rsync. However, the project has been abandoned since 2021 with no updates to account for changes in pip, Python, or packaging standards.
Use it for:
- Create an offline PyPI mirror for air-gapped or unreliable network environments.
- Maintain a stable snapshot of dependencies when upstream packages are removed or PyPI is unavailable.
- Set up a private package index for internal distribution within an organization.
- Speed up repeated deployments by serving pre-downloaded packages from local storage.
- Archive specific package versions before they disappear from PyPI.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
pip2pi creates a PyPI-compatible package repository from pip requirements, enabling offline package installation and mirroring to avoid PyPI downtime or missing tarballs.
No—install only if you have a specific legacy use case and are willing to maintain the tool yourself. The package is abandoned (last release 2021-08-04, last commit 2022-07-09), so it will not be updated for modern pip or Python versions. For current projects, use modern alternatives like devpi, Artifactory, or Nexus that are actively maintained and designed for contemporary packaging workflows.
Install
pip2pi on PyPI
pip
pip install pip2piuv
uv add pip2pipoetry
poetry add pip2piInstalling pip2pi
Before you install
Installation is straightforward with low friction—only pip is required as a runtime dependency. However, the package is abandoned: the last commit was 2022-07-09 and no releases have occurred since 2021-08-04, so expect no maintenance or updates.
License in practice
BSD license is permissive, allowing commercial and private use with minimal restrictions, making it suitable for internal mirroring infrastructure.
Quickstart
$ pip install pip2pi
$ pip2pi ~/packages/ foo==1.2
$ dir2pi ~/packages/
$ pip install --index-url=file:///path/to/packages/simple/ foo
Requires pip to be installed and available on the system; rsync is needed if pushing to a remote host via colon-separated paths.
Verify before relying
- Whether the tool still works reliably with modern pip versions and current PyPI package formats.
- Compatibility with recent Python versions—requires_python is unspecified in the metadata.
- Whether rsync-based remote deployment still functions as documented with current systems.
Package facts
| License | BSD (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — pip |
| Maintenance | abandoned — 1,836 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 165,390/month — #10,523 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pip2pi-0.8.2-py2.py3-none-any.whl
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
all-packagesAttempts to install every package from PyPI…
permissive · top 15,000 on PyPI
pypiThis package is a historical reference to…
permissive · top 15,000 on PyPI
pip-auditpip-audit scans Python environments and…
permissive · top 1,000 on PyPI
to-requirements.txtAutomatically synchronizes your project's…
permissive · top 15,000 on PyPI
pipmasterProgrammatically ensures Python packages are…
permissive · top 15,000 on PyPI
wheel-stubA PEP 517 build backend that creates stub…
permissive · top 5,000 on PyPI
reductoThis package is an alias that installs the…
permissive · top 15,000 on PyPI
charmcraftlocalPacks Juju charms with local Python package…
unclear · top 15,000 on PyPI
cvdupdateDownloads and maintains a local ClamAV…
permissive · top 5,000 on PyPI