How to roll my own pypi?
I would like to run my own internal pypi server, for egg distribution within my organization.
I have found a few projects, such as:
- http://pypi.python.org/pypi/EggBasket/
- http://plone.org/products/plonesoftwarecenter
As I understand it, pypi.python.org uses software called Cheese Shop.
My questions:
- Why can't I use cheeseshop itself? (I can't find it, not sure it exists)
- How do other people solve this problem? (Currently we use blush svn to distribute eggs)
*edit: This seems canonical http://wiki.python.org/moin/PyPiImplementations. Still, I'm interested in feedback.
Solution 1:
For light-weight solution, use pypiserver.
Solution 2:
Update: PyPi is now powered by Warehouse, which is the replacement for Cheese Shop.
The source to Cheese Shop can be downloaded from https://bitbucket.org/pypa/pypi/src. There is also an example, from the page you linked to, of using Apache as a "dumb" Python package repository:
# Mount pypi repositories into URI space
Alias /pypi /var/pypi
# /pypi/dev: Redirect for unknown packages (fallback to pypi)
RewriteCond /var/pypi/dev/$1 !-d
RewriteCond /var/pypi/dev/$1 !-f
RewriteRule ^/pypi/dev/([^/]+)/?$ http://pypi.python.org/pypi/$1/ [R,L]
RewriteCond /var/pypi/dev/$1/$2 !-f
RewriteRule ^/pypi/dev/([^/]+)/([^/]+)$ http://pypi.python.org/pypi/$1/$2 [R,L]
# /pypi/stable: Redirect for unknown packages (fallback to pypi)
RewriteCond /var/pypi/stable/$1 !-d
RewriteCond /var/pypi/stable/$1 !-f
RewriteRule ^/pypi/stable/([^/]+)/?$ http://pypi.python.org/pypi/$1/ [R,L]
RewriteCond /var/pypi/stable/$1/$2 !-f
RewriteRule ^/pypi/stable/([^/]+)/([^/]+)$ http://pypi.python.org/pypi/$1/$2 [R,L]