Simple PyPI server written in django. Allows you to register/upload with distutils and install with easy_install/pip.
Pull request Compare This branch is 139 commits ahead, 7 commits behind ask:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
djangopypi Switched it so that the proxying of unregistered packages forwards Apr 18, 2012
.gitignore Updated changelog for 0.4.4 Apr 18, 2012
AUTHORS.rst Updated authors.rst for recent pulls from others Apr 18, 2012
Changelog.rst Updated changelog for 0.4.4 Apr 18, 2012
LICENSE Moving djangopypi to the root Sep 11, 2011
setup.cfg Formatted authors.rst, updated setup files Sep 11, 2011



DjangoPyPI is a Django application that provides a re-implementation of the Python Package Index.



The first step is to get djangopypi into your Python path.


Simply add djangopypi to your list of eggs and run buildout again it should downloaded and installed properly.


If you have setuptools installed, you can use easy_install djangopypi


Download and unpack the source then run:

$ python install

Django Settings

Add djangopypi to your INSTALLED_APPS setting and run syncdb again to get the database tables [1].

Then add an include in your url config for djangopypi.urls:

urlpatterns = patterns("",
    url(r'', include("djangopypi.urls"))

This will make the repository interface be accessible at /pypi/.

Uploading to your PyPI

Assuming you are running your Django site locally for now, add the following to your ~/.pypirc file:

index-servers =



Uploading a package: Python >=2.6

To push the package to the local pypi:

$ python register -r local sdist upload -r local

Uploading a package: Python <2.6

If you don't have Python 2.6 please run the command below to install the backport of the extension for multiple repositories:

$ easy_install -U collective.dist

Instead of using register and dist command, you can use mregister and mupload which are a backport of python 2.6 register and upload commands that supports multiple servers.

To push the package to the local pypi:

$ python mregister -r local sdist mupload -r local
[1]djangopypi is South enabled, if you are using South then you will need to run the South migrate command to get the tables.