Welcome to PyPI User Documentation
The Python Package Index (PyPI), pronounced "pie-pea-eye"1, is the official package repository for Python. PyPI hosts packages created and shared by the global Python community.
As a Python user, you can use PyPI to find the code you need for your projects.
As a developer, you can use PyPI to publish and share your Python code with the world.
This documentation site (docs.pypi.org) covers how to use the PyPI website and API. To learn about the codebase that powers PyPI itself, visit the Warehouse documentation.
Contents
Using PyPI
- PyPI Basics - What PyPI is, and how projects, releases, and files relate to each other
- Finding and Installing Packages - Searching for packages and installing them with a package installer
- Package Security - A guide to assessing package security and avoiding common attacks
- Troubleshooting - Solutions to common issues when using PyPI
Configuring and Managing PyPI Projects
- Choosing a Project Name - Choosing a name, and why one might not be available
- Name Retention - PyPI's policy (PEP 541) for reclaiming abandoned or unused project names
- Project Descriptions - Writing short and long descriptions for your PyPI page
- Project Metadata - How PyPI displays and verifies project metadata, including project URLs
- Archive Formats - Archive format restrictions PyPI enforces on wheels and source distributions
- Storage Limits - File and project size limits, and how to request an increase
- Managing Project Collaborators - Adding, removing, and transferring project collaborators
- Yanking - Marking a broken or vulnerable release as yanked, without deleting it
- Archiving Projects - Marking a project as no longer maintained
- Troubleshooting - Answers to common project management questions
Publishing Projects to PyPI
- Publishing to PyPI - How to package and upload a new project or release
- Trusted Publishing - Publishing via OIDC, without long-lived API tokens
- Attestations - Cryptographically signing and verifying packages with PEP 740 attestations
- Troubleshooting - Answers to common errors encountered when uploading a package
Your PyPI Account
- Managing Your Account - Account settings and profile configuration
- Two-Factor Authentication - Setting up and using 2FA on your account
- Account Recovery - Recovering access to your PyPI account
- Security Alerts - Responding to security alerts and suspicious account activity
Organization Accounts
- Overview - What organization accounts are and who they're for
- FAQs - Common questions about organization accounts
- Roles and Entities - Organization roles, teams, and project-level permissions
- Pricing and Payments - Costs and billing for organization accounts
- Support - Getting help with an organization account
APIs & Data Integration
- PyPI APIs - Overview of the available APIs, caching, and rate limits
- Index API - The simple repository API used by installers
- JSON API - Structured project and release data
- Upload API - Uploading packages programmatically
- Integrity API - Retrieving PEP 740 attestations and provenance for uploaded files
- Stats API - Total and per-package size statistics
- BigQuery Datasets - Public datasets for download statistics and project metadata
- RSS Feeds - Feeds for new and updated packages
- Secret Reporting API - Reporting exposed PyPI API tokens found in public places
About PyPI
- Who Maintains PyPI - The PyPI maintainers and governance structure
- Contributing - How to contribute to PyPI and report issues or bugs
- PyPI Roadmap - Upcoming features and improvements
- Service Availability - Current status and service availability information
- PyPI Statistics - Usage and project statistics
- Security and Internals - Technical security details and internal information
- Getting Help - Resources and support for getting help with PyPI
Help
- For general questions or support using PyPI, please see our help page
- To report a bug or suggest a PyPI feature, submit an issue on the Warehouse GitHub repository
Contributing to the docs
We welcome contributions to this documentation! If you've noticed an error or would like to suggest an improvement, please open an issue on the pypi/warehouse repository and add the documentation label.
-
"PyPI" should be pronounced like "pie pea eye", specifically with the "PI" pronounced as individual letters, rather than a single sound. This minimizes confusion with the PyPy project, which is a popular alternative implementation of the Python language. ↩