fix(venv): Use the interpreter to abspath #590
Merged
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.

Identified in manual testing of v1.6.0-rc0.
Because of overly conservative removals of
realpathin #579, an issue is exposed where$VIRTUAL_ENVwould be an un-resolved relative path both under Bazel and more significantly once a user activates a linked venv. This isn't so bad for binaries which usually don'tchdir, but it's a problem for shells.Since MacOS doesn't ship a
realpathwhich can be configured to ignore symlinks, we can't justrealpaththe runfiles dir or the virtualenv home. But once we've configured a Python interpreter what we can do is useos.path.abspath. Unlikerealpath,abspathdoes not attempt to resolve symlink path segments. It just usesnormpathto eliminate relative path segments. This allows us to compute an absolute path in a portable way, once we get an appropriate interpreter up and running.Changes are visible to end-users: no
Test plan