Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

Common Questions

What's a package, project, or release?

We use a number of terms to describe software available on PyPI, like project, release, file, and package. Sometimes those terms are confusing because they're used to describe different things in other contexts. Here's how we use them on PyPI:

A project on PyPI is the name of a collection of releases and files, and information about them. Projects on PyPI are made and shared by other members of the Python community so that you can use them.

A release on PyPI is a specific version of a project. For example, the requests project has many releases, like requests 2.10 and requests 1.2.1. A release consists of one or more files.

A file, also known as a package, on PyPI is something that you can download and install. Because of different hardware, operating systems, and file formats, a release may have several files (packages), like an archive containing source code or a binary wheel.

How do I install a file (package) from PyPI?

To learn how to install a file from PyPI, visit the installation tutorial on the Python Packaging User Guide.

How do I package and publish my code for PyPI?

For full instructions on configuring, packaging and distributing your Python project, refer to the packaging tutorial on the Python Packaging User Guide.

Why can't I upload files to PyPI manually?

This feature was deprecated with the new version of PyPI - we instead recommend that you use twine to upload your project to PyPI.

What does pre-production mean?

'Pre-production' indicates that you are using a version of this software that is not fully tested and 'production ready'. This means:

  • The UI may return unusual or erroneous results
  • Performance may not yet be optimised
  • Some features that you use on the old interface may be missing

While we are in pre-production, our infrastructure cannot yet support all of the traffic generated by our users running pip install. We therefore ask that you do not use this version of PyPI for production codebases.

On the other hand, uploads are working well and project maintainers and owners should use this version of PyPI over the legacy site, which no longer supports this function.

Please see our development roadmap to understand what features will be available next.

Why isn't my desired project name available?

When creating a new Project on PyPI, you may recieve an error from your publishing tool which indicates that a project is not able to be created with your desired name. In addition you may find that there are no associated project or release on pypi.org, currently there are three primary reasons this may occur:

  • The project name conflicts with a Python Standard Library module from any major version from 2.5 to present.
  • The project name has been explicitly prohibitted by the PyPI administrators, for example pip install requirements.txt is a common typo for pip install -r requirements.txt, and should not surprise the user with a malicious package.
  • The project name has been registered by another user, but no releases have been created.

How do I claim an abandoned or previously registered project name?

There is currently no established process for performing this administrative task that is explicit and fair for all parties. However, one is currently in development with PEP 541.

When PEP 541 is accepted, the project will create a workflow, to be documented here.

Why do I need a verified email address?

Currently, PyPI requires a verified email address to perform the following operations:

  • Register a new Project

The list of activities that require a verified email address is likely to grow over time.

This policy will allow us to enforce a key policy of PEP 541 (once accepted) regarding maintainer reachability. It also reduces the viability of spam attacks to create many accounts in an automated fashion.

You can manage your Account's email addresses in your Profile. This also allows for sending a new confirmation email for users who signed up in the past, before we began enforcing this policy.

Who maintains PyPI?

The new PyPI is powered by the Warehouse project; Warehouse is an open source project developed under the umbrella of the Python Packaging Authority (PyPA) and supported by the Python Packaging Working Group (PackagingWG).

The PyPA is an independent group of developers whose goal is to improve and maintain many of the core projects related to Python packaging.

The PackagingWG is a working group of the Python Software Foundation (PSF) whose goal is to raise and disburse funds to support the ongoing improvement of Python packaging. Most recently it secured a grant from Mozilla whose funding currently enables Warehouse maintainers to work on the new PyPI.

I am having trouble using the PyPI website, can you help me?

We take accessibility very seriously and want to make the website easy to use for everyone.

If you are experiencing an accessibility problem, please report it to us on GitHub, so we can try to fix the problem, for you and others.

Where can I report a bug or provide feedback?

We welcome constructive feedback and bug reports via our issue tracker. Before writing a new issue, please first check that a similar issue does not already exist.

If you report a bug, please provide as much detail as you can. For example:

  • Your operating system
  • Your browser and browser version
  • Whether you can reproduce the bug (does it always happen, or just sometimes after certain actions?)
  • Steps to reproduce (if applicable)
  • Warning or error messages (if applicable)
  • What you expected to happen or your suggested fix (if you have one)

Please note: All users submitting feedback, reporting issues or contributing to Warehouse are expected to follow the PyPA Code of Conduct.

How can I contribute to PyPI?

We have a huge amount of work to do to continue to maintain and improve PyPI (also known as the Warehouse project), and would love to see some new faces working on the project.

You do not need to be an experienced open-source developer to make a contribution - in fact, we'd love to help you make your first open source pull request!

If you have skills in Python, HTML, SCSS, or JavaScript, then please take a look at the issue tracker. We've created a 'Good first issue' label - we recommend you start here.

Issues are grouped into milestones; working on issues in the current milestone is a great way to help push the project forward. If you're interested in working on a particular issue, leave a comment and we can guide you through the contribution process.

You can also follow the ongoing development of the project on the Distutils-sig mailing list and the PyPA Dev message group.

Please note: All users submitting feedback, reporting issues or contributing to Warehouse are expected to follow the PyPA Code of Conduct.

What powers PyPI?

PyPI is powered by a variety of tools and services provided by our generous sponsors.

Can I depend on PyPI being available?

PyPI is heavily cached and distributed via CDN thanks to our sponsor Fastly and thus is generally available globally. However, as could be expected for a giant distributed system, things can and sometimes do go wrong. If you have high availability requirements for your package index, consider either a mirror or a private index.

How can I run a mirror of PyPI?

If you need to run your own mirror of PyPI, the bandersnatch project is the recommended solution. Note that the storage requirements for a PyPI mirror would exceed 1 terabyte—and growing!

How can I publish my private packages to PyPI?

PyPI does not support publishing private packages. If you need to publish your private package to a package index, the recommended solution is to run your own deployment of the devpi project.

Why did my package or user registration get blocked?

Spammers return to PyPI on some regularity hoping to place their Search Engine Optimized phishing, scam, and click-farming content on the site. Since PyPI allows for indexing of the Long Description and other data related to projects and has a generally solid search reputation it is a prime target.

When the PyPI Administrators are overwhelmed by spam or determine that there is some other threat to PyPI, new user registration and/or new project registration may be disabled. Check our status page for more details, as we'll likely have updated it with reasoning for the intervention.

Resources

Looking for something not listed above? Perhaps these links will help:

Contact

The Python Packaging Authority (PyPA) is a working group who work together to improve Python packaging. If you'd like to get in touch with a core packaging developer, please use #pypa on IRC (freenode), or join the distutils-sig mailing list.

Supported By

Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Google Google Cloud Servers DreamHost DreamHost Log Hosting