Required packages ----------------- To run the PyPI software, you need Python 2.5+, PostgreSQL, and all these packages located at PyPI: - zope.interface - zope.pagetemplate - zope.tal - zope.tales - zope.i18nmessageid - psycopg2 (for testing, sqlite3 might be sufficient) - docutils - M2Crypto - distutils2 - six - python-openid - raven - passlib - py-bcrypt (If using the recommended bcrypt hasher) - itsdangerous - defusedxml - requests 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 --distribute . $ pip install zope.interface zope.pagetemplate $ pip install zope.tal zope.tales zope.i18nmessageid psycopg2 $ pip install docutils M2Crypto python-openid raven $ pip install passlib py-bcrypt $ pip install itsdangerous six distutils2 $ pip install defusedxml $ pip install requests 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 Database Setup -------------- 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. 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