Search code examples
pythonpipvirtualenvvirtualenvwrapper

Virtualenv specific pip config files


I need to use different pip config files depending on which project I'm currently working on. Each project pulls from a separate pypi repo and needs its own block in my .pip/pip.conf file

[global]
    timeout = 60
    index-url = <my_custom_pypi_repo>

Is there a way to provide a pip.conf file on a virtualenv specific basis?

Ideally when I run

 workon env1
 pip install env1_package

It would only try and download from the env1 config file

And similar for env2 Ideally when I run

 workon env2
 pip install env2_package

I would like it to not request this package from the env1 pypi server.


Solution

  • Found this after I had posted the question:

    https://pip.pypa.io/en/stable/topics/configuration/#configuration-files

     ~/.pip/pip.conf
    

    You will need to set:

     ~/.virtualenvs/env1/pip.conf
     ~/.virtualenvs/env2/pip.conf
    

    It will still inherit from:

     ~/.pip/pip.conf
    

    But will allow it to be overwritten for each environment.