djangopypi icon indicating copy to clipboard operation
djangopypi copied to clipboard

Simple PyPI server written in django. Allows you to register/upload with distutils and install with easy_install/pip.

DjangoPyPI

DjangoPyPI is a Django application that provides a re-implementation of the Python Package Index <http://pypi.python.org>_.

Installation

Path


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

Buildout ++++++++

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

EasyInstall/Setuptools ++++++++++++++++++++++

If you have setuptools installed, you can use easy_install djangopypi

Manual ++++++

Download and unpack the source then run::

$ python setup.py install

Django Settings


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

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::

[distutils]
index-servers =
    pypi
    local

[pypi]
username:user
password:secret

[local]
username:user
password:secret
repository:http://localhost:8000/pypi/

Uploading a package: Python >=2.6


To push the package to the local pypi::

$ python setup.py 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 setup.py mregister -r local sdist mupload -r local

.. [#] djangopypi is South enabled, if you are using South then you will need to run the South migrate command to get the tables.