Virtualenv specific pip config files

42,490

Solution 1

Found this after I had posted the question:

https://pip.pypa.io/en/stable/user_guide/#config-file

 ~/.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.

Solution 2

Just to update the answer here with the latest from the pip documentation:

Inside a virtualenv:

  • On Unix and macOS the file is $VIRTUAL_ENV/pip.conf

  • On Windows the file is: %VIRTUAL_ENV%\pip.ini

The $VIRTUAL_ENV environment variable gets set once you've activated the particular virtual environment you're interested in.

Share:
42,490
Luke Exton
Author by

Luke Exton

Software Architect/Engineer

Updated on July 09, 2022

Comments

  • Luke Exton
    Luke Exton almost 2 years

    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.

  • florisla
    florisla over 2 years
    Note that as @sql_knievel states, on Windows the file needs to be called pip.ini instead of pip.conf.