To run the PyPI software, you need Python 2.5+ and PostgreSQL
Quick development setup
Make sure you read http://wiki.python.org/moin/CheeseShopDev#DevelopmentEnvironmentHints and you have a working PostgreSQL DB.
Make sure your config.ini is up-to-date, initially copying from config.ini.template. Change CONFIG_FILE at the begining of pypi.wsgi, so it looks like this:
CONFIG_FILE = 'config.ini'
Then, you can create a development environment like this, if you have virtualenv installed:
$ virtualenv --no-site-packages . $ pip install -r requirements.txt
Then you can launch the server using the pypi.wsgi script:
$ python pypi.wsgi Serving on port 8000...
PyPI will be available in your browser at http://localhost:8000
To fill a database, run pkgbase_schema.sql on an empty Postgres database. Then run tools/demodata to populate the database with dummy data.
For testing purposes, run tools/mksqlite to create packages.db. Set [database]driver to sqlite3, and [database]name to packages.db, then run tools/demodata to populate the database.
PyPI Requires the citext extension to be installed.
TestPyPI Database Setup
testpypi runs under postgres; because I don't care to fill my head with such trivialities, the setup commands are:
createdb -O testpypi testpypi psql -U testpypi testpypi <pkgbase_schema.sql
PyPI has 2 different pieces that need started, web server and the task runner.
# Restart the web server $ /etc/init.d/pypi restart # Restart the task runner $ initctl restart pypi-worker