Support detecting multiple site-packages directories in venvs #1165
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
On Red Hat derived systems, Python's
purelib
andplatlib
are set to<prefix>/lib
and<prefix>/lib64
respectively. This means that Python packages are installed to either of those directories depending on whether they contain native libraries or not (as I understand it). This distinction is also present in pipenv's virtualenvs. See:The current virtualenv include path detection logic in pyright returns only the first extant
site-packages
directory it finds. This is insufficient for discovering the full include path for virtualenvs where packages may be installed in both thelib
andlib64
directories. This PR changes the virtualenv include path detection logic so that it returns all of the extantsite-packages
dirs it finds in thelib
,lib64
orLib
directories.