Skip to content

Latest release no longer respects PATH on Windows #2711

@ofek

Description

@ofek
import logging
import os
import shutil
from importlib import metadata

from virtualenv.discovery.builtin import propose_interpreters
from virtualenv.discovery.py_spec import PythonSpec

HERE = os.path.dirname(os.path.abspath(__file__))
LOGGER = logging.getLogger()
LOGGER.setLevel(logging.DEBUG)

def main():
    dist_path = os.path.join(HERE, 'cpython-3.11.9+20240415-x86_64-pc-windows-msvc-install_only')
    env = dict(os.environ)
    path = env.pop('PATH', os.defpath)
    env['PATH'] = f'{dist_path}{os.pathsep}{path}'
    binary_path = shutil.which('python', path=env['PATH'])
    virtualenv_version = metadata.version('virtualenv')

    print(f'Virtualenv version: {virtualenv_version}')
    print(f'Python binary: {binary_path}')

    for proposed_version in ('3',):
        print(f'{proposed_version}:')
        for data in propose_interpreters(PythonSpec.from_string_spec(proposed_version), (), None, env):
            interpreter = data[0]
            version = '.'.join(map(str, interpreter.version_info[:3]))
            print(f'    {version} -> {interpreter.executable}')

if __name__ == '__main__':
    main()
❯ python rf\v.py
C:\Users\ofek\Desktop\rf\cpython-3.11.9+20240415-x86_64-pc-windows-msvc-install_only\python.EXE
3:
    3.11.7 -> C:\Users\ofek\AppData\Local\Programs\Python\Python311\python.exe
    3.13.0 -> C:\Users\ofek\AppData\Local\Programs\Python\Python313\python.exe
    3.12.1 -> C:\Users\ofek\AppData\Local\Programs\Python\Python312\python.exe
    3.11.7 -> C:\Users\ofek\AppData\Local\Programs\Python\Python311\python.exe
    3.9.4 -> C:\Users\ofek\AppData\Local\Programs\Python\Python39\python.exe
    3.9.4 -> C:\Users\ofek\AppData\Local\Programs\Python\Python39\python.exe
    3.8.1 -> C:\Users\ofek\AppData\Local\Programs\Python\Python38\python.exe
    3.7.5 -> C:\Users\ofek\AppData\Local\Programs\Python\Python37\python.exe
    3.10.11 -> C:\Users\ofek\AppData\Local\Microsoft\WindowsApps\python3.10.exe
    3.11.9 -> C:\Users\ofek\AppData\Local\Microsoft\WindowsApps\python3.11.exe
    3.7.9 -> C:\Users\ofek\AppData\Local\Microsoft\WindowsApps\python3.7.exe
    3.8.10 -> C:\Users\ofek\AppData\Local\Microsoft\WindowsApps\python3.8.exe
    3.7.9 -> C:\Users\ofek\AppData\Local\Microsoft\WindowsApps\python3.exe

@flying-sheep likely related to #2709

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions