Virtualenv specific pip config files
Asked Answered
C

2

55

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.

Coprophilia answered 25/2, 2016 at 21:19 Comment(0)
C
77

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.

Coprophilia answered 25/2, 2016 at 21:19 Comment(1)
Note that as @sql_knievel states, on Windows the file needs to be called pip.ini instead of pip.conf.Superclass
G
18

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.

Gagliardi answered 26/11, 2019 at 14:53 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.