setuptools, easy_install, and a custom pypi server

easy-install, pip, pypi, python, setuptools

Solution

The following configuration will disable the pypi repository index and make your index the only index used by `pip` and `easy_install`. The setuptools `install` command is basically a shortcut to run the `easy_install` command on the current project. So, that would work too.

# Add the following to ~/.pydistutils.cfg for easy_install
[easy_install]
index_url = http://localhost:8000/


# Add the following to ~/.pip/pip.conf for pip
[global]
index-url = http://localhost:8000/

Look at easy_install's and pip's documentation for more information.

You could provide your users with a simple python script that creates these config files for them.

Problem

I've got a custom pypi server running and am wondering how to point all references to https://pypi.python.org/ from there to my custom server? I want to be able to cover cases of a user calling `pip` / `easy_install` of a package (so they don't have to remember to do `-i` or `-f`) as well as someone doing `python setup.py install` using setuptools with `install_requires` in the `setup.py`. Is there some global config or setting I can do to get all these different methods to look at my local server? I imagine doing some network-proxy-type magic to route `http://pypi.python.org/` to my custom server would be one way to go but unfortunately that's not an option. Thanks!

Original source