sethmlarson / truststore

Verify certificates using OS trust stores
https://truststore.readthedocs.io
MIT License
151 stars 18 forks source link

In pip, "--use-feature truststore" in requirements.txt does not seem to work #117

Closed JCapul closed 11 months ago

JCapul commented 11 months ago

Hi, In my org, we have our own PyPI server with self-signed certs. I have managed to use truststore successfully through pip on both Windows and Ubuntu through the command line option --use-feature truststore, like this :

pip install --extra-index-url https://[address-of-our-pypiserver] --use-feature truststore [some_package]

However, when I try the exact same thing using a requirements file like this:

requirements.txt

--extra-index-url https://[address-of-our-pypiserver]
--use-feature truststore

[some_package]

and: pip install -r requirements.txt

It does not work, and I get the unable to get local issuer certificate error.

pip seems to recognizes the feature because otherwise it raises an error when I type an unknown feature by pip.

I am not sure whether all this is a pip issue or a trustore issue, so I am posting this here.

Thanks a lot for your help !

Extra info: python version: 3.10 pip version: 23.2.1 truststore version: 0.8.0 Windows 10, Ubuntu 20.04

sethmlarson commented 11 months ago

Thanks for opening this issue. Unfortunately, this isn't an issue in Truststore (and maybe not in pip either). Pip doesn't allow specifying arbitrary options in a requirements.txt file and --use-feature seems to not be one of such options. Instead you'd have to run pip like so:

python -m pip install --use-feature=truststore -r requirements.txt

without --use-feature in requirements.txt. Closing this issue since there's nothing the Truststore project can do for this.

JCapul commented 11 months ago

Thanks @sethmlarson for taking the time to answer. It looks like though that pip does allow the use of --use-feature in requirements file according to their doc: https://pip.pypa.io/en/stable/reference/requirements-file-format/#supported-options

I tested other features and it worked, but not truststore. But I guess it must be a pip issue.