-
-
Notifications
You must be signed in to change notification settings - Fork 31.7k
gh-99204: Calculate base_executable by alternate names in POSIX venvs #99206
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
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is a reasonable fix, but let's see if others agree.
Conceptually it seems fine. Not sure whether we should mark this a "QUIRK" and aim to resolve it in some other way? I'll leave that to the POSIX people to decide |
e427dea
to
76403d8
Compare
… venvs Check to see if `base_executable` exists. If it does not, attempt to use known alternative names of the python binary to find an executable in the path specified by `home`. If no alternative is found, previous behavior is preserved. Signed-off-by: Vincent Fazio <vfazio@gmail.com>
76403d8
to
0683b37
Compare
Please don't force push changes when doing PRs. We'll squash merge at the end, but for now I have to re-review from the start because the diff is broken. I don't have time for that right now, but if someone else signs off and the variable names are indeed fixed, they can merge. |
@zooba sorry about that, my mistake completely. Diff below - _base_exe = basename(executable)
- for _candidate in (DEFAULT_PROGRAM_NAME, f'python{VERSION_MAJOR}.{VERSION_MINOR}'):
- _candidate += EXE_SUFFIX if EXE_SUFFIX else ''
- if _base_exe == _candidate:
+ base_exe = basename(executable)
+ for candidate in (DEFAULT_PROGRAM_NAME, f'python{VERSION_MAJOR}.{VERSION_MINOR}'):
+ candidate += EXE_SUFFIX if EXE_SUFFIX else ''
+ if base_exe == candidate:
continue
- _candidate = joinpath(executable_dir, _candidate)
+ candidate = joinpath(executable_dir, candidate)
# Only set base_executable if the candidate exists.
# If no candidate succeeds, subsequent errors related to
# base_executable (like FileNotFoundError) remain in the
# context of the original executable name
- if isfile(_candidate):
- base_executable = _candidate
+ if isfile(candidate):
+ base_executable = candidate
break
break
else: |
would there be any concerns about me also making a PR targeting 3.11? Fixing it here means not having to work around it in downstream packages. |
… venvs (pythonGH-99206) Check to see if `base_executable` exists. If it does not, attempt to use known alternative names of the python binary to find an executable in the path specified by `home`. If no alternative is found, previous behavior is preserved. Signed-off-by: Vincent Fazio <vfazio@gmail.com> (cherry picked from commit c41b13d) Co-authored-by: Vincent Fazio <vfazio@gmail.com> Signed-off-by: Vincent Fazio <vfazio@gmail.com>
GH-99340 is a backport of this pull request to the 3.11 branch. |
We'll let the bot do it. Should backport fine, as we haven't really been working on anything new in this file |
…GH-99206) Check to see if `base_executable` exists. If it does not, attempt to use known alternative names of the python binary to find an executable in the path specified by `home`. If no alternative is found, previous behavior is preserved. Signed-off-by: Vincent Fazio <vfazio@gmail.com> (cherry picked from commit c41b13d) Co-authored-by: Vincent Fazio <vfazio@gmail.com> Signed-off-by: Vincent Fazio <vfazio@gmail.com>
… venvs (pythonGH-99206) Check to see if `base_executable` exists. If it does not, attempt to use known alternative names of the python binary to find an executable in the path specified by `home`. If no alternative is found, previous behavior is preserved. Signed-off-by: Vincent Fazio <vfazio@gmail.com> Signed-off-by: Vincent Fazio <vfazio@gmail.com>
… venvs (pythonGH-99206) Check to see if `base_executable` exists. If it does not, attempt to use known alternative names of the python binary to find an executable in the path specified by `home`. If no alternative is found, previous behavior is preserved. Signed-off-by: Vincent Fazio <vfazio@gmail.com> Signed-off-by: Vincent Fazio <vfazio@gmail.com>
Check to see if
base_executable
exists. If it does not, attempt to use known alternative names of the python binary to find an executable in the path specified byhome
.If no alternative is found, previous behavior is preserved.
--copies
#99204