Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

support for packages with a .pth file #223

Open
sdementen opened this issue Aug 1, 2022 · 3 comments
Open

support for packages with a .pth file #223

sdementen opened this issue Aug 1, 2022 · 3 comments

Comments

@sdementen
Copy link

When creating a pyz file with dependencies "requests pip_system_certs", the file "pip_system_certs.pth" extracted in the ~/.shiv/pyzfolder/site-packages is not handled (tested by running import requests; requests.get("https://some.website.needing.system.certificate.store") which triggers a '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1129)' error)

Would it be possible to make the ~/.shiv/pyzfolder/site-packages folder be considered as one of the directory with .pth that are handled ?

Or automatically run the following code (will handle the .pth files in the folder) during the bootstrap ?

import site
site.addsitedir("~/.shiv/pyzfolder/site-packages")
site.main()
@sdementen
Copy link
Author

sdementen commented Aug 2, 2022

Another option would be to set https://docs.python.org/3/using/cmdline.html#envvar-PYTHONUSERBASE to the uncompressed folder in .shiv but this would require to rename somewhat the uncompressed folder to make it work (eg on windows, the folder should be named ~/.shiv/name-of-folder/Python310/site-packages (instead of ~/.shiv/name-of-folder/site-packages and PYTHONUSERBASE should be set to ~/.shiv/name-of-folder.

@lorencarvalho
Copy link
Contributor

Hi @sdementen,

PYZ files created by shiv should already be respecting .pth files, as we use site.addsitedir to evaluate the custom site-packages directory:

# append site-packages using the stdlib blessed way of extending path
# so as to handle .pth files correctly
site.addsitedir(site_packages)

@sdementen
Copy link
Author

Great! But it was not working on my side. Does it work for you? I wonder if we are not missing a call to site.main() after adding the path

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants