Visitar URL original
Broken executables with 26.0b1 · Issue #258 · python/pymanager · GitHub
Skip to content

Broken executables with 26.0b1 #258

Description

@bwoodsend

Following on from DPO...

Install source and version

  • Installed from the Windows Store
  • Installed with the MSIX from python.org
  • Installed with the MSI from python.org
  • Installed with winget install 9NQ7512CXL7T

Version: 26.0b1

Describe the bug
The executables in ~\AppData\Local\Python\bin are broken for me. With where python resolving to C:\Users\bagpuss\AppData\Local\Python\bin\python.exe:

  • Running python -> Access is denied.
  • Running C:\Users\bagpuss\AppData\Local\Python\bin\python.exe: A popup appears saying We can't open this 'ms-windows-store'; Your device needs a new app to open this link.
  • Likewise with C:\Users\bagpuss\AppData\Local\Microsoft\WindowsApps\python.exe or C:\Users\bagpuss\AppData\Local\Microsoft\WindowsApps\py.exe
  • Running py (resolves to C:\Users\bagpuss\AppData\Local\Microsoft\WindowsApps\py.exe) or C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\python.exe both correctly launch.

Additional context

This is a rather ropey Windows ARM64 VM (built using UTM). It has no network access.

Activity

  1. bwoodsend commented on Jan 28, 2026

    @bwoodsend
    Author

    Just copying your response from DPO for the sake of keeping this issue self contained.

    C:\Users\bagpuss>C:\Users\bagpuss\AppData\Local\Python\bin\python.exe
    [ Creates an error popup saying We can't open this 'ms-store-link'; Your device needs a new app to open this link. ]
    

    Hmm… this is quite surprising.

    ms-windows-store:// should be handled by the Store app, so if you’ve disabled, removed, corrupted, or otherwise broken that, it might be the problem. I’m not sure how you do any of those (besides disabling), but just trying to launch the Store app might provide a hint. (I assume it says ms-windows-store rather than ms-store-link, since the latter doesn’t exist… if it does say the latter, you’ve got unrelated system issues, sorry!)

    But in any case, we shouldn’t be trying to launch a Store link from our install manager executables. My guess is that we’ve somehow put the path to the preinstalled python.exe into C:\Users\bagpuss\AppData\Local\Python\bin\python.exe.__target__ (which you can easily check by looking in that file), but I can’t think of any ways for that to happen naturally.

    It’s possible the py install --refresh logs (or -vv output) may have a hint - could you file an issue and include the log for that? And also the py list -f json output. (These may include usernames or personal information from your system, feel free to scan and censor before posting them.) Thanks!

  2. bwoodsend commented on Jan 28, 2026

    @bwoodsend
    Author

    ms-windows-store:// should be handled by the Store app, so if you’ve disabled, removed, corrupted, or otherwise broken that, it might be the problem. I’m not sure how you do any of those (besides disabling), but just trying to launch the Store app might provide a hint

    It turns out that this VM does not have the Windows store (or possibly it's very good at hiding). I didn't think that was possible. There is a repair wizard for fixing Windows store apps that told me I need to turn UAC on. Maybe no UAC is a factor...

    But in any case, we shouldn’t be trying to launch a Store link from our install manager executables. My guess is that we’ve somehow put the path to the preinstalled python.exe into C:\Users\bagpuss\AppData\Local\Python\bin\python.exe.target (which you can easily check by looking in that file), but I can’t think of any ways for that to happen naturally.

    Each .exe in C:\Users\bagpuss\AppData\Local\Python\bin has a ~600KB size and a corresponding $file.__target__ file that contains a plain-text path to a ...\AppData\Local\Python\pythoncore-3.14-64\python.exe (and it's always python.exe – even when the __target__ file is pip). All the pip.exe variants additionally have a corresponding .__script__.py file containing some small pip wrapper. That sound like what it's supposed to sound like?

    There's also a pip3.10.exe in there whose target points to the wrong Python environment. I don't even have 3.10 on here. But probably not related...

    C:\Users\bagpuss>cat C:\Users\bagpuss\AppData\Local\Python\bin\pip3.10.exe.__target__
    C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.11\python.exe
    

    Each .exe in C:\Users\bagpuss\AppData\Local\Microsoft\WindowsApps is an empty file. Not sure what that means?

    It’s possible the py install --refresh logs (or -vv output) may have a hint - could you file an issue and include the log for that?

    py install --refresh -vv logs
    C:\Users\bagpuss>py install --refresh -vv
    Loading configuration from C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.177.0_x64__3847v3x7pw1km\pymanager.json
    # Setting config install to {'fallback_source': 'file:///C:/Program Files/WindowsApps/PythonSoftwareFoundation.PythonManager_26.0.177.0_x64__3847v3x7pw1km/bundled/fallback-index.json', 'default_install_tag': '3'}
    # Setting config list to {}
    # Setting config registry_override_key to 'HKEY_LOCAL_MACHINE\\Software\\Policies\\Python\\PyManager'
    # Setting config shebang_can_run_anything_silently to False
    # Setting config install_dir to C:\Users\bagpuss\AppData\Local\Python
    # Setting config download_dir to C:\Users\bagpuss\AppData\Local\Python\_cache
    # Setting config global_dir to C:\Users\bagpuss\AppData\Local\Python\bin
    # Setting config bundled_dir to C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.177.0_x64__3847v3x7pw1km\bundled
    # Setting config user_config to C:\Users\bagpuss\AppData\Roaming\Python\PyManager.json
    # Setting config pep514_root to 'HKEY_CURRENT_USER\\Software\\Python'
    # Setting config start_folder to 'Python'
    # Setting config launcher_exe to C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.177.0_x64__3847v3x7pw1km\templates\launcher.exe
    # Setting config launcherw_exe to C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.177.0_x64__3847v3x7pw1km\templates\launcherw.exe
    # Setting config welcome_on_update to True
    # Setting config _config_files to C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.177.0_x64__3847v3x7pw1km\pymanager.json
    Skipping configuration at C:\Users\bagpuss\AppData\Roaming\Python\PyManager.json because it does not exist
    # Get CPU architecture, its prefix is -64
    # Overriding command option fallback_source with 'file:///C:/Program Files/WindowsApps/PythonSoftwareFoundation.PythonManager_26.0.177.0_x64__3847v3x7pw1km/bundled/fallback-index.json'
    # Overriding command option default_install_tag with '3'
    # Finished processing options for install
    Writing logs to C:\Users\bagpuss\AppData\Local\Temp\python_install_20260124035559_5728.log
    Python installation manager 26.0b1
    Copyright (c) Python Software Foundation. All Rights Reserved.
    
    # BEGIN install_command.execute: []
    Refreshing install registrations.
    # Updating global shortcuts
    # Reading installs from C:\Users\bagpuss\AppData\Local\Python
    # Found 5 installs
    # Calculating default install
    # Filtering installs by tag = 3
    # Filter included pythoncore-3.14-64
    # Filter included pythoncore-3.13
    # Filter included pythoncore-3.12
    # Filter included pythoncore-3.11
    # Filter included pythoncore-3.11-arm64
    # tag '3' matched 5 installs
    # - 5 core install(s) by prefix
    # default_platform '-64' matched 1 install
    # Default install will be pythoncore-3.14-64
    # Calculating aliases for pythoncore-3.14-64
    # Found 1 entry_points.txt files in 1 dist-info in C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages
    # Calculating aliases for pythoncore-3.13
    # Found 1 entry_points.txt files in 1 dist-info in C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.13\Lib\site-packages
    # Calculating aliases for pythoncore-3.12
    # Found 1 entry_points.txt files in 1 dist-info in C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.12\Lib\site-packages
    # Calculating aliases for pythoncore-3.11
    # Found 2 entry_points.txt files in 2 dist-info in C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.11\Lib\site-packages
    # Calculating aliases for pythoncore-3.11-arm64
    # Found 2 entry_points.txt files in 2 dist-info in C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.11-arm64\Lib\site-packages
    # Creating aliases
    # Checking for launcher for platform -64
    # Create python3.14.exe linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\python.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.177.0_x64__3847v3x7pw1km\templates\launcher-64.exe
    # Checking for launcher for platform -64
    # Create python3.14-64.exe linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\python.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.177.0_x64__3847v3x7pw1km\templates\launcher-64.exe
    # Checking for launcher for platform -64
    # Create python3.exe linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\python.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.177.0_x64__3847v3x7pw1km\templates\launcher-64.exe
    # Checking for launcher for platform -64
    # Create python3-64.exe linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\python.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.177.0_x64__3847v3x7pw1km\templates\launcher-64.exe
    # Checking for launcher for platform -64
    # Create pythonw3.14.exe linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\pythonw.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.177.0_x64__3847v3x7pw1km\templates\launcherw-64.exe
    # Checking for launcher for platform -64
    # Create pythonw3.14-64.exe linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\pythonw.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.177.0_x64__3847v3x7pw1km\templates\launcherw-64.exe
    # Checking for launcher for platform -64
    # Create pythonw3.exe linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\pythonw.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.177.0_x64__3847v3x7pw1km\templates\launcherw-64.exe
    # Checking for launcher for platform -64
    # Create pythonw3-64.exe linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\pythonw.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.177.0_x64__3847v3x7pw1km\templates\launcherw-64.exe
    # Checking for launcher for platform -64
    # Create python linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\python.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.177.0_x64__3847v3x7pw1km\templates\launcher-64.exe
    # Checking for launcher for platform -64
    # Create pythonw linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\pythonw.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.177.0_x64__3847v3x7pw1km\templates\launcherw-64.exe
    # Checking for launcher for platform -64
    # Create pip linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\python.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.177.0_x64__3847v3x7pw1km\templates\launcher-64.exe
    # Checking for launcher for platform -64
    # Create pip3 linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\python.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.177.0_x64__3847v3x7pw1km\templates\launcher-64.exe
    # Checking for launcher for platform -3.13.1
    # Checking for launcher for default platform -64
    # Create python3.13.exe linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.13\python.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.177.0_x64__3847v3x7pw1km\templates\launcher-64.exe
    # Checking for launcher for platform -3.13.1
    # Checking for launcher for default platform -64
    # Create pythonw3.13.exe linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.13\pythonw.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.177.0_x64__3847v3x7pw1km\templates\launcherw-64.exe
    # Checking for launcher for platform -3.12.8
    # Checking for launcher for default platform -64
    # Create python3.12.exe linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.12\python.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.177.0_x64__3847v3x7pw1km\templates\launcher-64.exe
    # Checking for launcher for platform -3.12.8
    # Checking for launcher for default platform -64
    # Create pythonw3.12.exe linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.12\pythonw.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.177.0_x64__3847v3x7pw1km\templates\launcherw-64.exe
    # Checking for launcher for platform -3.11.9
    # Checking for launcher for default platform -64
    # Create python3.11.exe linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.11\python.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.177.0_x64__3847v3x7pw1km\templates\launcher-64.exe
    # Checking for launcher for platform -3.11.9
    # Checking for launcher for default platform -64
    # Create pythonw3.11.exe linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.11\pythonw.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.177.0_x64__3847v3x7pw1km\templates\launcherw-64.exe
    # Checking for launcher for platform -3.11.9
    # Checking for launcher for default platform -64
    # Create pip3.10 linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.11\python.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.177.0_x64__3847v3x7pw1km\templates\launcher-64.exe
    # Checking for launcher for platform -arm64
    # Create python3.11-arm64.exe linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.11-arm64\python.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.177.0_x64__3847v3x7pw1km\templates\launcher-arm64.exe
    # Checking for launcher for platform -arm64
    # Create python3-arm64.exe linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.11-arm64\python.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.177.0_x64__3847v3x7pw1km\templates\launcher-arm64.exe
    # Checking for launcher for platform -arm64
    # Create pythonw3.11-arm64.exe linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.11-arm64\pythonw.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.177.0_x64__3847v3x7pw1km\templates\launcherw-arm64.exe
    # Checking for launcher for platform -arm64
    # Create pythonw3-arm64.exe linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.11-arm64\pythonw.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.177.0_x64__3847v3x7pw1km\templates\launcherw-arm64.exe
    # Cleaning up aliases
    # Retaining 23 aliases
    # Creating/updating HKEY_CURRENT_USER\Software\Python\PythonCore\3.14
    # Creating shortcut C:\Users\bagpuss\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.14\Python 3.14.lnk to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\python.exe
    # Creating shortcut C:\Users\bagpuss\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.14\Python 3.14 Online Documentation.lnk to https://docs.python.org/3.14/
    # Creating shortcut C:\Users\bagpuss\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.14\IDLE (Python 3.14).lnk to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\pythonw.exe
    # Creating shortcut C:\Users\bagpuss\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.14\PyDoc (Python 3.14).lnk to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\python.exe
    # Creating shortcut C:\Users\bagpuss\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.14\Python 3.14 Manuals.lnk to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\Doc\html\index.html
    # Creating ARP entry for pymanager-pythoncore-3.14-64
    # Searching C:\Users\bagpuss\AppData\Local\Microsoft\WindowsApps for pymanager.exe for ARP entries
    # Checking C:\Users\bagpuss\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.PythonManager_3847v3x7pw1km\pymanager.exe
    # Creating/updating HKEY_CURRENT_USER\Software\Python\PythonCore\3.13
    # Creating shortcut C:\Users\bagpuss\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.13\Python 3.13.lnk to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.13\python.exe
    # Creating shortcut C:\Users\bagpuss\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.13\Python 3.13 Documentation.lnk to https://docs.python.org/3.13/
    [WARNING] An existing runtime is registered at PythonCore\3.12 in the registry, and so the new one has not been registered.
    This may prevent some other applications from detecting the new installation, although 'py -V:...' will work. To register the new installation, remove the existing runtime and then run 'py install --refresh'
    # Creating shortcut C:\Users\bagpuss\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.12\Python 3.12.lnk to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.12\python.exe
    # Creating shortcut C:\Users\bagpuss\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.12\Python 3.12 Documentation.lnk to https://docs.python.org/3.12/
    # Creating/updating HKEY_CURRENT_USER\Software\Python\PythonCore\3.11
    # Creating shortcut C:\Users\bagpuss\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.11\Python 3.11.lnk to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.11\python.exe
    # Creating shortcut C:\Users\bagpuss\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.11\Python 3.11 Documentation.lnk to https://docs.python.org/3.11/
    # Creating/updating HKEY_CURRENT_USER\Software\Python\PythonCore\3.11-arm64
    # Creating shortcut C:\Users\bagpuss\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.11 (ARM64)\Python 3.11 (ARM64).lnk to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.11-arm64\python.exe
    # Creating shortcut C:\Users\bagpuss\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.11 (ARM64)\Python 3.11 Documentation.lnk to https://docs.python.org/3.11/
    # Cleaning up registry entries
    # Skipping HKEY_CURRENT_USER\Software\Python\PythonCore\3.11
    # Skipping HKEY_CURRENT_USER\Software\Python\PythonCore\3.11-arm64
    # Skipping HKEY_CURRENT_USER\Software\Python\PythonCore\3.12
    # Skipping HKEY_CURRENT_USER\Software\Python\PythonCore\3.12-arm64
    # Skipping HKEY_CURRENT_USER\Software\Python\PythonCore\3.13
    # Skipping HKEY_CURRENT_USER\Software\Python\PythonCore\3.14
    # Cleaning up Start menu shortcuts
    # Except: Python 3.13
    # Except: Python 3.14
    # Except: Python 3.13\Python 3.13 Documentation
    # Except: Python 3.13\Python 3.13
    # Except: Python 3.12
    # Except: Python 3.12\Python 3.12
    # Except: Python 3.14\Python 3.14
    # Except: Python 3.11
    # Except: Python 3.14\PyDoc (Python 3.14)
    # Except: Python 3.12\Python 3.12 Documentation
    # Except: Python 3.11\Python 3.11 Documentation
    # Except: Python 3.11 (ARM64)\Python 3.11 Documentation
    # Except: Python 3.14\Python 3.14 Manuals
    # Except: Python 3.11\Python 3.11
    # Except: Python 3.11 (ARM64)\Python 3.11 (ARM64)
    # Except: Python 3.11 (ARM64)
    # Except: Python 3.14\IDLE (Python 3.14)
    # Except: Python 3.14\Python 3.14 Online Documentation
    # Reading installs from C:\Users\bagpuss\AppData\Local\Python
    # Found 5 installs
    # Calculating default install
    # Filtering installs by tag = 3
    # Filter included pythoncore-3.14-64
    # Filter included pythoncore-3.13
    # Filter included pythoncore-3.12
    # Filter included pythoncore-3.11
    # Filter included pythoncore-3.11-arm64
    # tag '3' matched 5 installs
    # - 5 core install(s) by prefix
    # default_platform '-64' matched 1 install
    # Default install will be pythoncore-3.14-64
    Python 3.14.2 will be launched by python.exe and also python3[-64].exe, python3.14[-64].exe
    Python 3.13.1 will be launched by python3.13.exe
    Python 3.12.8 will be launched by python3.12.exe
    Python 3.11.9 will be launched by python3.11.exe
    Python 3.11.9 (ARM64) will be launched by python3-arm64.exe, python3.11-arm64.exe
    # END install_command.execute
    

    And also the py list -f json output.

    Details
    {
      "versions": [
        {
          "schema": 1,
          "id": "pythoncore-3.14-64",
          "sort-version": "3.14.2",
          "company": "PythonCore",
          "tag": "3.14-64",
          "install-for": [
            "3.14.2-64",
            "3.14-64",
            "3-64",
            "3.14-dev-64",
            "3-dev-64"
          ],
          "alias": [
            {
              "target": "python.exe",
              "name": "python3.14.exe"
            },
            {
              "target": "python.exe",
              "name": "python3.14-64.exe"
            },
            {
              "target": "python.exe",
              "name": "python3.exe"
            },
            {
              "target": "python.exe",
              "name": "python3-64.exe"
            },
            {
              "target": "pythonw.exe",
              "windowed": 1,
              "name": "pythonw3.14.exe"
            },
            {
              "target": "pythonw.exe",
              "windowed": 1,
              "name": "pythonw3.14-64.exe"
            },
            {
              "target": "pythonw.exe",
              "windowed": 1,
              "name": "pythonw3.exe"
            },
            {
              "target": "pythonw.exe",
              "windowed": 1,
              "name": "pythonw3-64.exe"
            }
          ],
          "display-name": "Python 3.14.2",
          "executable": "C:\\Users\\bagpuss\\AppData\\Local\\Python\\pythoncore-3.14-64\\python.exe",
          "url": "file:///C:/Program Files/WindowsApps/PythonSoftwareFoundation.PythonManager_26.0.177.0_x64__3847v3x7pw1km/bundled/pythoncore-3.14-64-3.14.2.zip",
          "hash": {
            "sha256": "7f9f03032b19222299d04ae5b1ad459bd913bc25e8d1ff070e1a80e09a4feddf"
          },
          "run-for": [
            {
              "target": "python.exe",
              "tag": "3.14.2-64"
            },
            {
              "target": "python.exe",
              "tag": "3.14-dev-64"
            },
            {
              "target": "python.exe",
              "tag": "3-dev-64"
            },
            {
              "target": "python.exe",
              "tag": "3.14-64"
            },
            {
              "target": "python.exe",
              "tag": "3-64"
            },
            {
              "target": "pythonw.exe",
              "windowed": 1,
              "tag": "3.14.2-64"
            },
            {
              "target": "pythonw.exe",
              "windowed": 1,
              "tag": "3.14-dev-64"
            },
            {
              "target": "pythonw.exe",
              "windowed": 1,
              "tag": "3-dev-64"
            },
            {
              "target": "pythonw.exe",
              "windowed": 1,
              "tag": "3.14-64"
            },
            {
              "target": "pythonw.exe",
              "windowed": 1,
              "tag": "3-64"
            }
          ],
          "shortcuts": [
            {
              "kind": "pep514",
              "Key": "PythonCore\\3.14",
              "DisplayName": "Python 3.14.2",
              "SupportUrl": "https://www.python.org/",
              "SysArchitecture": "64bit",
              "SysVersion": "3.14",
              "Version": "3.14.2",
              "InstallPath": {
                "_": "%PREFIX%",
                "ExecutablePath": "%PREFIX%python.exe",
                "WindowedExecutablePath": "%PREFIX%pythonw.exe",
                "IdlePath": "%PREFIX%Lib\\idlelib\\idle.pyw"
              },
              "Help": {
                "Online Python Documentation": {
                  "_": "https://docs.python.org/3.14/"
                },
                "Main Python Documentation": {
                  "_": "%PREFIX%Doc\\html\\index.html"
                }
              }
            },
            {
              "kind": "start",
              "Name": "Python 3.14",
              "Items": [
                {
                  "Name": "Python 3.14",
                  "Target": "%PREFIX%python.exe",
                  "Icon": "%PREFIX%python.exe"
                },
                {
                  "Name": "Python 3.14 Online Documentation",
                  "Icon": "%SystemRoot%\\System32\\SHELL32.dll",
                  "IconIndex": 13,
                  "Target": "https://docs.python.org/3.14/"
                },
                {
                  "Name": "IDLE (Python 3.14)",
                  "Target": "%PREFIX%pythonw.exe",
                  "Arguments": "\"%PREFIX%Lib\\idlelib\\idle.pyw\"",
                  "Icon": "%PREFIX%Lib\\idlelib\\Icons\\idle.ico",
                  "IconIndex": 0
                },
                {
                  "Name": "PyDoc (Python 3.14)",
                  "Target": "%PREFIX%python.exe",
                  "Arguments": "-m pydoc -b",
                  "Icon": "%PREFIX%Lib\\idlelib\\Icons\\idle.ico",
                  "IconIndex": 0
                },
                {
                  "Name": "Python 3.14 Manuals",
                  "Target": "%PREFIX%Doc\\html\\index.html"
                }
              ]
            },
            {
              "kind": "uninstall",
              "Publisher": "Python Software Foundation",
              "HelpLink": "https://docs.python.org/3.14/"
            }
          ],
          "__original-shortcuts": [
            {
              "kind": "pep514",
              "Key": "PythonCore\\3.14",
              "DisplayName": "Python 3.14.2",
              "SupportUrl": "https://www.python.org/",
              "SysArchitecture": "64bit",
              "SysVersion": "3.14",
              "Version": "3.14.2",
              "InstallPath": {
                "_": "%PREFIX%",
                "ExecutablePath": "%PREFIX%python.exe",
                "WindowedExecutablePath": "%PREFIX%pythonw.exe",
                "IdlePath": "%PREFIX%Lib\\idlelib\\idle.pyw"
              },
              "Help": {
                "Online Python Documentation": {
                  "_": "https://docs.python.org/3.14/"
                },
                "Main Python Documentation": {
                  "_": "%PREFIX%Doc\\html\\index.html"
                }
              }
            },
            {
              "kind": "start",
              "Name": "Python 3.14",
              "Items": [
                {
                  "Name": "Python 3.14",
                  "Target": "%PREFIX%python.exe",
                  "Icon": "%PREFIX%python.exe"
                },
                {
                  "Name": "Python 3.14 Online Documentation",
                  "Icon": "%SystemRoot%\\System32\\SHELL32.dll",
                  "IconIndex": 13,
                  "Target": "https://docs.python.org/3.14/"
                },
                {
                  "Name": "IDLE (Python 3.14)",
                  "Target": "%PREFIX%pythonw.exe",
                  "Arguments": "\"%PREFIX%Lib\\idlelib\\idle.pyw\"",
                  "Icon": "%PREFIX%Lib\\idlelib\\Icons\\idle.ico",
                  "IconIndex": 0
                },
                {
                  "Name": "PyDoc (Python 3.14)",
                  "Target": "%PREFIX%python.exe",
                  "Arguments": "-m pydoc -b",
                  "Icon": "%PREFIX%Lib\\idlelib\\Icons\\idle.ico",
                  "IconIndex": 0
                },
                {
                  "Name": "Python 3.14 Manuals",
                  "Target": "%PREFIX%Doc\\html\\index.html"
                }
              ]
            },
            {
              "kind": "uninstall",
              "Publisher": "Python Software Foundation",
              "HelpLink": "https://docs.python.org/3.14/"
            }
          ],
          "prefix": "C:\\Users\\bagpuss\\AppData\\Local\\Python\\pythoncore-3.14-64",
          "default": true
        },
        {
          "schema": 1,
          "id": "pythoncore-3.13",
          "sort-version": "3.13.1",
          "company": "PythonCore",
          "tag": "3.13.1",
          "install-for": [
            "3.13.1",
            "3.13",
            "3"
          ],
          "run-for": [
            {
              "tag": "3.13",
              "target": "python.exe"
            },
            {
              "tag": "3",
              "target": "python.exe"
            }
          ],
          "alias": [
            {
              "name": "python3.13.exe",
              "target": "python.exe"
            },
            {
              "name": "python3.exe",
              "target": "python.exe"
            },
            {
              "name": "pythonw3.13.exe",
              "target": "pythonw.exe",
              "windowed": 1
            },
            {
              "name": "pythonw3.exe",
              "target": "pythonw.exe",
              "windowed": 1
            }
          ],
          "shortcuts": [
            {
              "kind": "pep514",
              "Key": "PythonCore\\3.13",
              "DisplayName": "Python 3.13.1",
              "SupportUrl": "https://www.python.org/",
              "SysArchitecture": "64bit",
              "SysVersion": "3.13",
              "Version": "3.13.1",
              "InstallPath": {
                "": "%PREFIX%",
                "ExecutablePath": "%PREFIX%python.exe",
                "WindowedExecutablePath": "%PREFIX%pythonw.exe"
              },
              "Help": {
                "Online Python Documentation": {
                  "": "https://docs.python.org/3.13/"
                }
              }
            },
            {
              "kind": "start",
              "Name": "Python 3.13",
              "Items": [
                {
                  "Name": "Python 3.13",
                  "Target": "%PREFIX%python.exe",
                  "Icon": "%PREFIX%python.exe"
                },
                {
                  "Name": "Python 3.13 Documentation",
                  "Icon": "%SystemRoot%\\System32\\SHELL32.dll",
                  "IconIndex": 13,
                  "Target": "https://docs.python.org/3.13/"
                }
              ]
            }
          ],
          "displayName": "Python 3.13.1",
          "executable": "C:\\Users\\bagpuss\\AppData\\Local\\Python\\pythoncore-3.13\\python.exe",
          "url": "https://api.nuget.org/v3-flatcontainer/python/3.13.1/python.3.13.1.nupkg",
          "__original-shortcuts": [
            {
              "kind": "pep514",
              "Key": "PythonCore\\3.13",
              "DisplayName": "Python 3.13.1",
              "SupportUrl": "https://www.python.org/",
              "SysArchitecture": "64bit",
              "SysVersion": "3.13",
              "Version": "3.13.1",
              "InstallPath": {
                "": "%PREFIX%",
                "ExecutablePath": "%PREFIX%python.exe",
                "WindowedExecutablePath": "%PREFIX%pythonw.exe"
              },
              "Help": {
                "Online Python Documentation": {
                  "": "https://docs.python.org/3.13/"
                }
              }
            },
            {
              "kind": "start",
              "Name": "Python 3.13",
              "Items": [
                {
                  "Name": "Python 3.13",
                  "Target": "%PREFIX%python.exe",
                  "Icon": "%PREFIX%python.exe"
                },
                {
                  "Name": "Python 3.13 Documentation",
                  "Icon": "%SystemRoot%\\System32\\SHELL32.dll",
                  "IconIndex": 13,
                  "Target": "https://docs.python.org/3.13/"
                }
              ]
            }
          ],
          "source": "file:///C:/Program%20Files/WindowsApps/PythonSoftwareFoundation.PythonManager_0.1.0.164_x64__7qnp2ymwnadz2/bundled/index.json",
          "display-name": "Python 3.13.1",
          "prefix": "C:\\Users\\bagpuss\\AppData\\Local\\Python\\pythoncore-3.13"
        },
        {
          "schema": 1,
          "id": "pythoncore-3.12",
          "sort-version": "3.12.8",
          "company": "PythonCore",
          "tag": "3.12.8",
          "install-for": [
            "3.12.8",
            "3.12",
            "3"
          ],
          "run-for": [
            {
              "tag": "3.12",
              "target": "python.exe"
            },
            {
              "tag": "3",
              "target": "python.exe"
            }
          ],
          "alias": [
            {
              "name": "python3.12.exe",
              "target": "python.exe"
            },
            {
              "name": "python3.exe",
              "target": "python.exe"
            },
            {
              "name": "pythonw3.12.exe",
              "target": "pythonw.exe",
              "windowed": 1
            },
            {
              "name": "pythonw3.exe",
              "target": "pythonw.exe",
              "windowed": 1
            }
          ],
          "shortcuts": [
            {
              "kind": "pep514",
              "Key": "PythonCore\\3.12",
              "DisplayName": "Python 3.12.8",
              "SupportUrl": "https://www.python.org/",
              "SysArchitecture": "64bit",
              "SysVersion": "3.12",
              "Version": "3.12.8",
              "InstallPath": {
                "": "%PREFIX%",
                "ExecutablePath": "%PREFIX%python.exe",
                "WindowedExecutablePath": "%PREFIX%pythonw.exe"
              },
              "Help": {
                "Online Python Documentation": {
                  "": "https://docs.python.org/3.12/"
                }
              }
            },
            {
              "kind": "start",
              "Name": "Python 3.12",
              "Items": [
                {
                  "Name": "Python 3.12",
                  "Target": "%PREFIX%python.exe",
                  "Icon": "%PREFIX%python.exe"
                },
                {
                  "Name": "Python 3.12 Documentation",
                  "Icon": "%SystemRoot%\\System32\\SHELL32.dll",
                  "IconIndex": 13,
                  "Target": "https://docs.python.org/3.12/"
                }
              ]
            }
          ],
          "displayName": "Python 3.12.8",
          "executable": "C:\\Users\\bagpuss\\AppData\\Local\\Python\\pythoncore-3.12\\python.exe",
          "url": "https://api.nuget.org/v3-flatcontainer/python/3.12.8/python.3.12.8.nupkg",
          "__original-shortcuts": [
            {
              "kind": "pep514",
              "Key": "PythonCore\\3.12",
              "DisplayName": "Python 3.12.8",
              "SupportUrl": "https://www.python.org/",
              "SysArchitecture": "64bit",
              "SysVersion": "3.12",
              "Version": "3.12.8",
              "InstallPath": {
                "": "%PREFIX%",
                "ExecutablePath": "%PREFIX%python.exe",
                "WindowedExecutablePath": "%PREFIX%pythonw.exe"
              },
              "Help": {
                "Online Python Documentation": {
                  "": "https://docs.python.org/3.12/"
                }
              }
            },
            {
              "kind": "start",
              "Name": "Python 3.12",
              "Items": [
                {
                  "Name": "Python 3.12",
                  "Target": "%PREFIX%python.exe",
                  "Icon": "%PREFIX%python.exe"
                },
                {
                  "Name": "Python 3.12 Documentation",
                  "Icon": "%SystemRoot%\\System32\\SHELL32.dll",
                  "IconIndex": 13,
                  "Target": "https://docs.python.org/3.12/"
                }
              ]
            }
          ],
          "source": "file:///C:/Program%20Files/WindowsApps/PythonSoftwareFoundation.PythonManager_0.1.0.164_x64__7qnp2ymwnadz2/bundled/index.json",
          "display-name": "Python 3.12.8",
          "prefix": "C:\\Users\\bagpuss\\AppData\\Local\\Python\\pythoncore-3.12"
        },
        {
          "schema": 1,
          "unmanaged": 1,
          "id": "__unmanaged-PythonCore-3.12",
          "sort-version": "3.12.7",
          "company": "PythonCore",
          "tag": "3.12",
          "run-for": [
            {
              "tag": "3.12",
              "target": "python.exe"
            },
            {
              "tag": "3.12",
              "target": "pythonw.exe",
              "windowed": 1
            },
            {
              "tag": "3",
              "target": "python.exe"
            },
            {
              "tag": "3",
              "target": "pythonw.exe",
              "windowed": 1
            }
          ],
          "display-name": "Python 3.12 (64-bit)",
          "prefix": "C:\\Users\\bagpuss\\AppData\\Local\\Programs\\Python\\Python312",
          "executable": "C:\\Users\\bagpuss\\AppData\\Local\\Programs\\Python\\Python312\\python.exe"
        },
        {
          "schema": 1,
          "unmanaged": 1,
          "id": "__unmanaged-PythonCore-3.12-arm64",
          "sort-version": "3.12.7",
          "company": "PythonCore",
          "tag": "3.12-arm64",
          "run-for": [
            {
              "tag": "3.12-arm64",
              "target": "python.exe"
            },
            {
              "tag": "3.12-arm64",
              "target": "pythonw.exe",
              "windowed": 1
            },
            {
              "tag": "3",
              "target": "python.exe"
            },
            {
              "tag": "3",
              "target": "pythonw.exe",
              "windowed": 1
            }
          ],
          "display-name": "Python 3.12 (ARM64)",
          "prefix": "C:\\Users\\bagpuss\\AppData\\Local\\Programs\\Python\\Python312-arm64",
          "executable": "C:\\Users\\bagpuss\\AppData\\Local\\Programs\\Python\\Python312-arm64\\python.exe"
        },
        {
          "schema": 1,
          "id": "pythoncore-3.11",
          "sort-version": "3.11.9",
          "company": "PythonCore",
          "tag": "3.11.9",
          "install-for": [
            "3.11.9",
            "3.11",
            "3"
          ],
          "run-for": [
            {
              "tag": "3.11",
              "target": "python.exe"
            },
            {
              "tag": "3",
              "target": "python.exe"
            }
          ],
          "alias": [
            {
              "name": "python3.11.exe",
              "target": "python.exe"
            },
            {
              "name": "python3.exe",
              "target": "python.exe"
            },
            {
              "name": "pythonw3.11.exe",
              "target": "pythonw.exe",
              "windowed": 1
            },
            {
              "name": "pythonw3.exe",
              "target": "pythonw.exe",
              "windowed": 1
            }
          ],
          "shortcuts": [
            {
              "kind": "pep514",
              "Key": "PythonCore\\3.11",
              "DisplayName": "Python 3.11.9",
              "SupportUrl": "https://www.python.org/",
              "SysArchitecture": "64bit",
              "SysVersion": "3.11",
              "Version": "3.11.9",
              "InstallPath": {
                "": "%PREFIX%",
                "ExecutablePath": "%PREFIX%python.exe",
                "WindowedExecutablePath": "%PREFIX%pythonw.exe"
              },
              "Help": {
                "Online Python Documentation": {
                  "": "https://docs.python.org/3.11/"
                }
              }
            },
            {
              "kind": "start",
              "Name": "Python 3.11",
              "Items": [
                {
                  "Name": "Python 3.11",
                  "Target": "%PREFIX%python.exe",
                  "Icon": "%PREFIX%python.exe"
                },
                {
                  "Name": "Python 3.11 Documentation",
                  "Icon": "%SystemRoot%\\System32\\SHELL32.dll",
                  "IconIndex": 13,
                  "Target": "https://docs.python.org/3.11/"
                }
              ]
            }
          ],
          "displayName": "Python 3.11.9",
          "executable": "C:\\Users\\bagpuss\\AppData\\Local\\Python\\pythoncore-3.11\\python.exe",
          "url": "https://api.nuget.org/v3-flatcontainer/python/3.11.9/python.3.11.9.nupkg",
          "__original-shortcuts": [
            {
              "kind": "pep514",
              "Key": "PythonCore\\3.11",
              "DisplayName": "Python 3.11.9",
              "SupportUrl": "https://www.python.org/",
              "SysArchitecture": "64bit",
              "SysVersion": "3.11",
              "Version": "3.11.9",
              "InstallPath": {
                "": "%PREFIX%",
                "ExecutablePath": "%PREFIX%python.exe",
                "WindowedExecutablePath": "%PREFIX%pythonw.exe"
              },
              "Help": {
                "Online Python Documentation": {
                  "": "https://docs.python.org/3.11/"
                }
              }
            },
            {
              "kind": "start",
              "Name": "Python 3.11",
              "Items": [
                {
                  "Name": "Python 3.11",
                  "Target": "%PREFIX%python.exe",
                  "Icon": "%PREFIX%python.exe"
                },
                {
                  "Name": "Python 3.11 Documentation",
                  "Icon": "%SystemRoot%\\System32\\SHELL32.dll",
                  "IconIndex": 13,
                  "Target": "https://docs.python.org/3.11/"
                }
              ]
            }
          ],
          "source": "file:///C:/Program%20Files/WindowsApps/PythonSoftwareFoundation.PythonManager_0.1.0.164_x64__7qnp2ymwnadz2/bundled/index.json",
          "display-name": "Python 3.11.9",
          "prefix": "C:\\Users\\bagpuss\\AppData\\Local\\Python\\pythoncore-3.11"
        },
        {
          "schema": 1,
          "id": "pythoncore-3.11-arm64",
          "sort-version": "3.11.9",
          "company": "PythonCore",
          "tag": "3.11.9-arm64",
          "install-for": [
            "3.11.9-arm64",
            "3.11-arm64",
            "3-arm64"
          ],
          "run-for": [
            {
              "tag": "3.11-arm64",
              "target": "python.exe"
            },
            {
              "tag": "3-arm64",
              "target": "python.exe"
            }
          ],
          "alias": [
            {
              "name": "python3.11-arm64.exe",
              "target": "python.exe"
            },
            {
              "name": "python3-arm64.exe",
              "target": "python.exe"
            },
            {
              "name": "pythonw3.11-arm64.exe",
              "target": "pythonw.exe",
              "windowed": 1
            },
            {
              "name": "pythonw3-arm64.exe",
              "target": "pythonw.exe",
              "windowed": 1
            }
          ],
          "shortcuts": [
            {
              "kind": "pep514",
              "Key": "PythonCore\\3.11-arm64",
              "DisplayName": "Python 3.11.9 (ARM64)",
              "SupportUrl": "https://www.python.org/",
              "SysArchitecture": "64bit",
              "SysVersion": "3.11",
              "Version": "3.11.9",
              "InstallPath": {
                "": "%PREFIX%",
                "ExecutablePath": "%PREFIX%python.exe",
                "WindowedExecutablePath": "%PREFIX%pythonw.exe"
              },
              "Help": {
                "Online Python Documentation": {
                  "": "https://docs.python.org/3.11/"
                }
              }
            },
            {
              "kind": "start",
              "Name": "Python 3.11 (ARM64)",
              "Items": [
                {
                  "Name": "Python 3.11 (ARM64)",
                  "Target": "%PREFIX%python.exe",
                  "Icon": "%PREFIX%python.exe"
                },
                {
                  "Name": "Python 3.11 Documentation",
                  "Icon": "%SystemRoot%\\System32\\SHELL32.dll",
                  "IconIndex": 13,
                  "Target": "https://docs.python.org/3.11/"
                }
              ]
            }
          ],
          "displayName": "Python 3.11.9 (ARM64)",
          "executable": "C:\\Users\\bagpuss\\AppData\\Local\\Python\\pythoncore-3.11-arm64\\python.exe",
          "url": "https://api.nuget.org/v3-flatcontainer/pythonarm64/3.11.9/pythonarm64.3.11.9.nupkg",
          "__original-shortcuts": [
            {
              "kind": "pep514",
              "Key": "PythonCore\\3.11-arm64",
              "DisplayName": "Python 3.11.9 (ARM64)",
              "SupportUrl": "https://www.python.org/",
              "SysArchitecture": "64bit",
              "SysVersion": "3.11",
              "Version": "3.11.9",
              "InstallPath": {
                "": "%PREFIX%",
                "ExecutablePath": "%PREFIX%python.exe",
                "WindowedExecutablePath": "%PREFIX%pythonw.exe"
              },
              "Help": {
                "Online Python Documentation": {
                  "": "https://docs.python.org/3.11/"
                }
              }
            },
            {
              "kind": "start",
              "Name": "Python 3.11 (ARM64)",
              "Items": [
                {
                  "Name": "Python 3.11 (ARM64)",
                  "Target": "%PREFIX%python.exe",
                  "Icon": "%PREFIX%python.exe"
                },
                {
                  "Name": "Python 3.11 Documentation",
                  "Icon": "%SystemRoot%\\System32\\SHELL32.dll",
                  "IconIndex": 13,
                  "Target": "https://docs.python.org/3.11/"
                }
              ]
            }
          ],
          "source": "file:///C:/Program%20Files/WindowsApps/PythonSoftwareFoundation.PythonManager_0.1.0.164_x64__7qnp2ymwnadz2/bundled/index.json",
          "display-name": "Python 3.11.9 (ARM64)",
          "prefix": "C:\\Users\\bagpuss\\AppData\\Local\\Python\\pythoncore-3.11-arm64"
        }
      ]
    }

    These may include usernames or personal information from your system,

    Don't worry. Bagpuss isn't a secret. 🙂

  3. zooba commented on Jan 28, 2026

    @zooba
    Member

    This is a rather ropey Windows ARM64 VM (built using UTM). It has no network access.

    This I expect is the root cause, but I'd still like to understand it.

    Each .exe in C:\Users\bagpuss\AppData\Local\Python\bin has a ~600KB size and a corresponding $file.__target__ file that contains a plain-text path to a ...\AppData\Local\Python\pythoncore-3.14-64\python.exe

    I was (kind of) hoping that the python.exe.__target__ pointed somewhere different, since that's the only way I can think of that running it directly could be trying to launch a Store app (I quote, "Running C:\Users\bagpuss\AppData\Local\Python\bin\python.exe: A popup appears saying We can't open this 'ms-windows-store'; ...").

    I'd be less surprised if running it indirectly was resolving to the wrong app - likely the preinstalled one - but I'm utterly confused how we can have a regular exe referencing a regular exe and be getting a Store error.

    it's always python.exe – even when the __target__ file is pip). All the pip.exe variants additionally have a corresponding .__script__.py file containing some small pip wrapper. That sound like what it's supposed to sound like?

    Yes, this is the design. We always need to launch the executable (or find and load its DLL), and sometimes we want to launch it with a script that's derived from a package's entry points.

    There's also a pip3.10.exe in there whose target points to the wrong Python environment.

    Yeah, this is an authoring error in pip that has been fixed, but can't be removed from older releases.

    Maybe no UAC is a factor...

    Potentially, but I'd expect it to only matter when it comes to trying to repair broken stuff in the system (since "disabled" can either mean "always admin, all the time" or "never admin with no way to change that"). It shouldn't affect PyManager or any installed runtimes.

    It's also possible, if you've installed all updates, that you're hitting a known issue in the January security patches. This one seems unlikely though, as that has different error messages.

    Perhaps the last bits of information that are helpful here would be:

    • check Manage App Execution Aliases to make sure the commands are active for Python (default) or Python install manager and not something else
    • check the python.exe.__target__ file specifically to see if it's also pointing at the python-3.14 install and not something else
  4. bwoodsend commented on Jan 31, 2026

    @bwoodsend
    Author

    check Manage App Execution Aliases to make sure the commands are active for Python (default) or Python install manager and not something else

    I think so. I removed the old copy of py and pymanager so everything I have left is enabled.
    Image

    check the python.exe.target file specifically to see if it's also pointing at the python-3.14 install and not something else

    C:\Users\bagpuss>cat C:\Users\bagpuss\AppData\Local\Python\bin\python.exe.__target__
    C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\python.exe
    C:\Users\bagpuss>C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\python.exe -VV
    Python 3.14.2 (tags/v3.14.2:df79316, Dec  5 2025, 17:18:21) [MSC v.1944 64 bit (AMD64)]
    C:\Users\bagpuss>C:\Users\bagpuss\AppData\Local\Python\bin\python.exe
    Access is denied.

    Yep. The target points to the right python.exe and that python.exe works but not if launched through the alias.

  5. zooba commented on Feb 2, 2026

    @zooba
    Member

    My one last idea is that somehow the hard link for the launcher executables has not worked properly (since they're all identical, we save space by making them hard links instead of copies, so that 600KB is only used once and probably in the original install directory).

    Unfortunately, I don't have a good way to test that theory right now. I'll add a new config option and do another beta this week (fingers crossed) so please keep that machine if you've still got it and we can try disabling that and see if it works.

    In the meantime, deleting the ...\bin directory and doing py install --refresh should regenerate all those files. It might help? It might be a hint of some kind, at least.

  6. bwoodsend commented on Feb 6, 2026

    @bwoodsend
    Author

    Hi, sorry these keep taking me so long.

    In the meantime, deleting the ...\bin directory and doing py install --refresh should regenerate all those files. It might help? It might be a hint of some kind, at least.

    That didn't seem to do anything but upgrading to 26.0b2 fix it all.

    Details
    $ pip install tuxsay
    $ py install --refresh
    $ tuxsay 'It did it!!!' -c knight
    
                 ,;~;,     ,"""""""""""""".
                    /\_    | It did it!!! |
                   (  /   _;............'
                   (()  _;  //)
                   | \.\  ,,;;'\.
               __ _(  )m=(((((((((============----
             /'  ' '()/~' '.(, |
          ,;(      )||     |  ~
         ,;' \    /-(.;,   )
              ) /       ) /
             //         ||
            )_\         )_\.

    But setting "hard_link_entrypoints": true in pymanager.json then rerunning install --refresh didn't break it so I guess that's that theory gone...

    (Also, is there any reason why the docs for pymanager.json's location can't just say %AppData%/Roaming/Python/pymanager.json?)

    I did get the Your app execution alias settings are configured to launch other commands besides 'py' and 'python' message on installing 26.0b2 which I wasn't expecting given that I still have all the python aliases enabled.

  7. zooba commented on Feb 6, 2026

    @zooba
    Member

    is there any reason why the docs for pymanager.json's location can't just say %AppData%/Roaming/Python/pymanager.json

    Because %AppData% expands to include the Roaming. It could say %UserProfile%\AppData\Roaming\Python\pymanager.json but now it's getting pretty long.

    I did get the Your app execution alias settings are configured to launch other commands besides 'py' and 'python' message on installing 26.0b2 which I wasn't expecting given that I still have all the python aliases enabled.

    Interesting. I wonder if you've got a non-beta install as well? Or maybe the aliases just didn't get updated properly - it happens, there's some tricky bugs around updating them that never repro well enough to get them resolved. I'm less concerned about this one, most people will only see it on first use and then will get updates automatically and won't see it again.

    setting "hard_link_entrypoints": true in pymanager.json then rerunning install --refresh didn't break it

    It probably didn't update anything. By default, it won't touch unchanged files, though when set it to false it'll always replace them with copies even if they look unchanged. This time, deleting them all and --refresh should change them back to hard links. The log messages are different in this case (it'll call out that it's doing links).

  8. bwoodsend commented on Feb 7, 2026

    @bwoodsend
    Author

    Interesting. I wonder if you've got a non-beta install as well?

    Hmm, how would I tell? There's only one Python Installation Manager under Setting->Apps->Installed Apps. winget list has nothing to say apart from Failed when opening source(s).

    It probably didn't update anything. By default, it won't touch unchanged files, though when set it to false it'll always replace them with copies even if they look unchanged. This time, deleting them all and --refresh should change them back to hard links.

    Yep, that was it. I can switch back and forth between happy aliases and broken ones by deleting the aliases then running --refresh with or without hard_link_entrypoints enabled.

    Logs for unhappy case
    bagpuss@WINDOWS-JEJIRC0  ~
    $ rm /c/Users/bagpuss/AppData/Local/Python/bin/*
    
    bagpuss@WINDOWS-JEJIRC0  ~
    $ pymanager install --config pymanager.json --refresh -vv  # (pymanager.json contains "hard_link_entrypoints": true)
    Loading configuration from C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.178.0_x64__3847v3x7pw1km\pymanager.json
    # Setting config install to {'fallback_source': 'file:///C:/Program Files/WindowsApps/PythonSoftwareFoundation.PythonManager_26.0.178.0_x64__3847v3x7pw1km/bundled/fallback-index.json', 'default_install_tag': '3', 'hard_link_entrypoints': False}
    # Setting config list to {}
    # Setting config registry_override_key to 'HKEY_LOCAL_MACHINE\\Software\\Policies\\Python\\PyManager'
    # Setting config shebang_can_run_anything_silently to False
    # Setting config install_dir to C:\Users\bagpuss\AppData\Local\Python
    # Setting config download_dir to C:\Users\bagpuss\AppData\Local\Python\_cache
    # Setting config global_dir to C:\Users\bagpuss\AppData\Local\Python\bin
    # Setting config bundled_dir to C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.178.0_x64__3847v3x7pw1km\bundled
    # Setting config user_config to C:\Users\bagpuss\AppData\Roaming\Python\PyManager.json
    # Setting config pep514_root to 'HKEY_CURRENT_USER\\Software\\Python'
    # Setting config start_folder to 'Python'
    # Setting config launcher_exe to C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.178.0_x64__3847v3x7pw1km\templates\launcher.exe
    # Setting config launcherw_exe to C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.178.0_x64__3847v3x7pw1km\templates\launcherw.exe
    # Setting config welcome_on_update to True
    # Setting config _config_files to C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.178.0_x64__3847v3x7pw1km\pymanager.json
    Skipping configuration at C:\Users\bagpuss\AppData\Roaming\Python\PyManager.json because it does not exist
    Loading configuration from pymanager.json
    # Recursively updating config install
    # Setting config enable_entrypoints to True
    # Updating config hard_link_entrypoints from False to True
    # Updating config _config_files from C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.178.0_x64__3847v3x7pw1km\pymanager.json to C:\Users\bagpuss\pymanager.json
    # Get CPU architecture, its prefix is -64
    # Overriding command option fallback_source with 'file:///C:/Program Files/WindowsApps/PythonSoftwareFoundation.PythonManager_26.0.178.0_x64__3847v3x7pw1km/bundled/fallback-index.json'
    # Overriding command option default_install_tag with '3'
    # Overriding command option hard_link_entrypoints with True
    # Overriding command option enable_entrypoints with True
    # Finished processing options for install
    Writing logs to C:\Users\bagpuss\AppData\Local\Temp\python_install_20260127135926_5076.log
    Python installation manager 26.0b2
    Copyright (c) Python Software Foundation. All Rights Reserved.
    
    # BEGIN install_command.execute: []
    Refreshing install registrations.
    # Updating global shortcuts
    # Reading installs from C:\Users\bagpuss\AppData\Local\Python
    # Found 5 installs
    # Calculating default install
    # Filtering installs by tag = 3
    # Filter included pythoncore-3.14-64
    # Filter included pythoncore-3.13
    # Filter included pythoncore-3.12
    # Filter included pythoncore-3.11
    # Filter included pythoncore-3.11-arm64
    # tag '3' matched 5 installs
    # - 5 core install(s) by prefix
    # default_platform '-64' matched 1 install
    # Default install will be pythoncore-3.14-64
    # Calculating aliases for pythoncore-3.14-64
    # Found 2 entry_points.txt files in 7 dist-info in C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages
    # Calculating aliases for pythoncore-3.13
    # Found 1 entry_points.txt files in 1 dist-info in C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.13\Lib\site-packages
    # Calculating aliases for pythoncore-3.12
    # Found 1 entry_points.txt files in 1 dist-info in C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.12\Lib\site-packages
    # Calculating aliases for pythoncore-3.11
    # Found 2 entry_points.txt files in 2 dist-info in C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.11\Lib\site-packages
    # Calculating aliases for pythoncore-3.11-arm64
    # Found 2 entry_points.txt files in 2 dist-info in C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.11-arm64\Lib\site-packages
    # Creating aliases
    # Checking for launcher for platform -64
    # Create python3.14.exe linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\python.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.178.0_x64__3847v3x7pw1km\templates\launcher-64.exe
    # Created python3.14.exe as hard link to launcher-64.exe
    # Checking for launcher for platform -64
    # Create python3.14-64.exe linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\python.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.178.0_x64__3847v3x7pw1km\templates\launcher-64.exe
    # Created python3.14-64.exe as hard link to launcher-64.exe
    # Checking for launcher for platform -64
    # Create python3.exe linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\python.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.178.0_x64__3847v3x7pw1km\templates\launcher-64.exe
    # Created python3.exe as hard link to launcher-64.exe
    # Checking for launcher for platform -64
    # Create python3-64.exe linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\python.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.178.0_x64__3847v3x7pw1km\templates\launcher-64.exe
    # Created python3-64.exe as hard link to launcher-64.exe
    # Checking for launcher for platform -64
    # Create pythonw3.14.exe linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\pythonw.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.178.0_x64__3847v3x7pw1km\templates\launcherw-64.exe
    # Created pythonw3.14.exe as hard link to launcherw-64.exe
    # Checking for launcher for platform -64
    # Create pythonw3.14-64.exe linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\pythonw.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.178.0_x64__3847v3x7pw1km\templates\launcherw-64.exe
    # Created pythonw3.14-64.exe as hard link to launcherw-64.exe
    # Checking for launcher for platform -64
    # Create pythonw3.exe linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\pythonw.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.178.0_x64__3847v3x7pw1km\templates\launcherw-64.exe
    # Created pythonw3.exe as hard link to launcherw-64.exe
    # Checking for launcher for platform -64
    # Create pythonw3-64.exe linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\pythonw.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.178.0_x64__3847v3x7pw1km\templates\launcherw-64.exe
    # Created pythonw3-64.exe as hard link to launcherw-64.exe
    # Checking for launcher for platform -64
    # Create python linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\python.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.178.0_x64__3847v3x7pw1km\templates\launcher-64.exe
    # Created python.exe as hard link to launcher-64.exe
    # Checking for launcher for platform -64
    # Create pythonw linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\pythonw.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.178.0_x64__3847v3x7pw1km\templates\launcherw-64.exe
    # Created pythonw.exe as hard link to launcherw-64.exe
    # Checking for launcher for platform -64
    # Create pip linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\python.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.178.0_x64__3847v3x7pw1km\templates\launcher-64.exe
    # Created pip.exe as hard link to launcher-64.exe
    # Checking for launcher for platform -64
    # Create pip3 linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\python.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.178.0_x64__3847v3x7pw1km\templates\launcher-64.exe
    # Created pip3.exe as hard link to launcher-64.exe
    # Checking for launcher for platform -64
    # Create tuxsay linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\python.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.178.0_x64__3847v3x7pw1km\templates\launcher-64.exe
    # Created tuxsay.exe as hard link to launcher-64.exe
    # Checking for launcher for platform -64
    # Create txs linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\python.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.178.0_x64__3847v3x7pw1km\templates\launcher-64.exe
    # Created txs.exe as hard link to launcher-64.exe
    # Checking for launcher for platform -3.13.1
    # Checking for launcher for default platform -64
    # Create python3.13.exe linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.13\python.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.178.0_x64__3847v3x7pw1km\templates\launcher-64.exe
    # Created python3.13.exe as hard link to launcher-64.exe
    # Checking for launcher for platform -3.13.1
    # Checking for launcher for default platform -64
    # Create pythonw3.13.exe linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.13\pythonw.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.178.0_x64__3847v3x7pw1km\templates\launcherw-64.exe
    # Created pythonw3.13.exe as hard link to launcherw-64.exe
    # Checking for launcher for platform -3.12.8
    # Checking for launcher for default platform -64
    # Create python3.12.exe linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.12\python.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.178.0_x64__3847v3x7pw1km\templates\launcher-64.exe
    # Created python3.12.exe as hard link to launcher-64.exe
    # Checking for launcher for platform -3.12.8
    # Checking for launcher for default platform -64
    # Create pythonw3.12.exe linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.12\pythonw.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.178.0_x64__3847v3x7pw1km\templates\launcherw-64.exe
    # Created pythonw3.12.exe as hard link to launcherw-64.exe
    # Checking for launcher for platform -3.11.9
    # Checking for launcher for default platform -64
    # Create python3.11.exe linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.11\python.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.178.0_x64__3847v3x7pw1km\templates\launcher-64.exe
    # Created python3.11.exe as hard link to launcher-64.exe
    # Checking for launcher for platform -3.11.9
    # Checking for launcher for default platform -64
    # Create pythonw3.11.exe linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.11\pythonw.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.178.0_x64__3847v3x7pw1km\templates\launcherw-64.exe
    # Created pythonw3.11.exe as hard link to launcherw-64.exe
    # Checking for launcher for platform -3.11.9
    # Checking for launcher for default platform -64
    # Create pip3.10 linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.11\python.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.178.0_x64__3847v3x7pw1km\templates\launcher-64.exe
    # Created pip3.10.exe as hard link to launcher-64.exe
    # Checking for launcher for platform -arm64
    # Create python3.11-arm64.exe linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.11-arm64\python.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.178.0_x64__3847v3x7pw1km\templates\launcher-arm64.exe
    # Created python3.11-arm64.exe as hard link to launcher-arm64.exe
    # Checking for launcher for platform -arm64
    # Create python3-arm64.exe linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.11-arm64\python.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.178.0_x64__3847v3x7pw1km\templates\launcher-arm64.exe
    # Created python3-arm64.exe as hard link to launcher-arm64.exe
    # Checking for launcher for platform -arm64
    # Create pythonw3.11-arm64.exe linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.11-arm64\pythonw.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.178.0_x64__3847v3x7pw1km\templates\launcherw-arm64.exe
    # Created pythonw3.11-arm64.exe as hard link to launcherw-arm64.exe
    # Checking for launcher for platform -arm64
    # Create pythonw3-arm64.exe linking to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.11-arm64\pythonw.exe using C:\Program Files\WindowsApps\PythonSoftwareFoundation.PythonManager_26.0.178.0_x64__3847v3x7pw1km\templates\launcherw-arm64.exe
    # Created pythonw3-arm64.exe as hard link to launcherw-arm64.exe
    # Cleaning up aliases
    # Retaining 25 aliases
    # Creating/updating HKEY_CURRENT_USER\Software\Python\PythonCore\3.14
    # Creating shortcut C:\Users\bagpuss\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.14\Python 3.14.lnk to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\python.exe
    # Creating shortcut C:\Users\bagpuss\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.14\Python 3.14 Online Documentation.lnk to https://docs.python.org/3.14/
    # Creating shortcut C:\Users\bagpuss\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.14\IDLE (Python 3.14).lnk to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\pythonw.exe
    # Creating shortcut C:\Users\bagpuss\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.14\PyDoc (Python 3.14).lnk to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\python.exe
    # Creating shortcut C:\Users\bagpuss\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.14\Python 3.14 Manuals.lnk to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\Doc\html\index.html
    # Creating ARP entry for pymanager-pythoncore-3.14-64
    # Searching C:\Users\bagpuss\AppData\Local\Microsoft\WindowsApps for pymanager.exe for ARP entries
    # Checking C:\Users\bagpuss\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.PythonManager_3847v3x7pw1km\pymanager.exe
    # Creating/updating HKEY_CURRENT_USER\Software\Python\PythonCore\3.13
    # Creating shortcut C:\Users\bagpuss\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.13\Python 3.13.lnk to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.13\python.exe
    # Creating shortcut C:\Users\bagpuss\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.13\Python 3.13 Documentation.lnk to https://docs.python.org/3.13/
    [WARNING] An existing runtime is registered at PythonCore\3.12 in the registry, and so the new one has not been registered.
    This may prevent some other applications from detecting the new installation, although 'py -V:...' will work. To register the new installation, remove the existing runtime and then run 'py install --refresh'
    # Creating shortcut C:\Users\bagpuss\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.12\Python 3.12.lnk to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.12\python.exe
    # Creating shortcut C:\Users\bagpuss\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.12\Python 3.12 Documentation.lnk to https://docs.python.org/3.12/
    # Creating/updating HKEY_CURRENT_USER\Software\Python\PythonCore\3.11
    # Creating shortcut C:\Users\bagpuss\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.11\Python 3.11.lnk to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.11\python.exe
    # Creating shortcut C:\Users\bagpuss\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.11\Python 3.11 Documentation.lnk to https://docs.python.org/3.11/
    # Creating/updating HKEY_CURRENT_USER\Software\Python\PythonCore\3.11-arm64
    # Creating shortcut C:\Users\bagpuss\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.11 (ARM64)\Python 3.11 (ARM64).lnk to C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.11-arm64\python.exe
    # Creating shortcut C:\Users\bagpuss\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.11 (ARM64)\Python 3.11 Documentation.lnk to https://docs.python.org/3.11/
    # Cleaning up registry entries
    # Skipping HKEY_CURRENT_USER\Software\Python\PythonCore\3.11
    # Skipping HKEY_CURRENT_USER\Software\Python\PythonCore\3.11-arm64
    # Skipping HKEY_CURRENT_USER\Software\Python\PythonCore\3.12
    # Skipping HKEY_CURRENT_USER\Software\Python\PythonCore\3.12-arm64
    # Skipping HKEY_CURRENT_USER\Software\Python\PythonCore\3.13
    # Skipping HKEY_CURRENT_USER\Software\Python\PythonCore\3.14
    # Cleaning up Start menu shortcuts
    # Except: Python 3.12
    # Except: Python 3.14\PyDoc (Python 3.14)
    # Except: Python 3.13
    # Except: Python 3.11 (ARM64)\Python 3.11 Documentation
    # Except: Python 3.11 (ARM64)\Python 3.11 (ARM64)
    # Except: Python 3.13\Python 3.13
    # Except: Python 3.11
    # Except: Python 3.12\Python 3.12
    # Except: Python 3.12\Python 3.12 Documentation
    # Except: Python 3.13\Python 3.13 Documentation
    # Except: Python 3.11\Python 3.11
    # Except: Python 3.14
    # Except: Python 3.11\Python 3.11 Documentation
    # Except: Python 3.11 (ARM64)
    # Except: Python 3.14\Python 3.14
    # Except: Python 3.14\Python 3.14 Online Documentation
    # Except: Python 3.14\Python 3.14 Manuals
    # Except: Python 3.14\IDLE (Python 3.14)
    # Reading installs from C:\Users\bagpuss\AppData\Local\Python
    # Found 5 installs
    # Calculating default install
    # Filtering installs by tag = 3
    # Filter included pythoncore-3.14-64
    # Filter included pythoncore-3.13
    # Filter included pythoncore-3.12
    # Filter included pythoncore-3.11
    # Filter included pythoncore-3.11-arm64
    # tag '3' matched 5 installs
    # - 5 core install(s) by prefix
    # default_platform '-64' matched 1 install
    # Default install will be pythoncore-3.14-64
    Python 3.14.2 will be launched by python.exe and also python3[-64].exe, python3.14[-64].exe
    Python 3.13.1 will be launched by python3.13.exe
    Python 3.12.8 will be launched by python3.12.exe
    Python 3.11.9 will be launched by python3.11.exe
    Python 3.11.9 (ARM64) will be launched by python3-arm64.exe, python3.11-arm64.exe
    # END i
  9. zooba commented on Feb 9, 2026

    @zooba
    Member

    I can switch back and forth between happy aliases and broken ones by deleting the aliases then running --refresh with or without hard_link_entrypoints enabled.

    Okay, so there's something the matter with hard links. I'll have to do some more testing, but I guess we'll probably just leave it turned off by default to avoid problems.

    One last thing you might be able to try - can you add {"global_dir": "path"} into your config (top level) and set the path to a different disk drive (a virtual drive is fine, "Create a virtual disk" should be in your Start menu if you search for it), enable hard links, and refresh again. That should force Pymanager to copy the executable out of the install directory and then hard link all the other copies. That might fix it, if the problem is the link going to inside a package. If so, then I can change the behaviour to work like that and it should be a good default.

  10. bwoodsend commented on Feb 13, 2026

    @bwoodsend
    Author

    Not sure I follow why hardlinks should be ok like this but if I'm understanding your instructions then that seems to work.

    bagpuss@WINDOWS-JEJIRC0  ~
    $ rm /f/pymanager-path/*
    
    bagpuss@WINDOWS-JEJIRC0  ~
    $ cat pymanager.json
    {
        "global_dir": "f:\\pymanager-path",
        "install": {
            "enable_entrypoints": true,
            "hard_link_entrypoints": true
        }
    }
    
    bagpuss@WINDOWS-JEJIRC0  ~
    $ pymanager install --refresh --config=pymanager.json
    Refreshing install registrations.
    [WARNING] An existing runtime is registered at PythonCore\3.12 in the registry, and so the new one has not been registered.
    This may prevent some other applications from detecting the new installation, although 'py -V:...' will work. To register the new installation, remove the existing runtime and then run 'py install --refresh'
    
    Global shortcuts directory is not on PATH. Add it for easy access to global Python aliases.
    Directory to add: f:\pymanager-path
    
    
    bagpuss@WINDOWS-JEJIRC0  ~
    $ for command in /f/pymanager-path/*.exe ; do $command -VV ; done
    pip 25.3 from C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pip (python 3.14)
    pip 24.0 from C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.11\Lib\site-packages\pip (python 3.11)
    pip 25.3 from C:\Users\bagpuss\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pip (python 3.14)
    Python 3.14.2 (tags/v3.14.2:df79316, Dec  5 2025, 17:18:21) [MSC v.1944 64 bit (AMD64)]
    Python 3.14.2 (tags/v3.14.2:df79316, Dec  5 2025, 17:18:21) [MSC v.1944 64 bit (AMD64)]
    ... lots of reassuring version outputs ...

    The F drive is a new NTFS partition in case that's significant.

  11. zooba commented on Feb 13, 2026

    @zooba
    Member

    Not sure I follow why hardlinks should be ok like this

    By default, we'll hard link into the C:\Program Files\WindowsApps\<secret path>\templates\... directory, which apparently doesn't work on your machine. But we're allowed to create the link anyway.

    Once we're trying to link from F:\, the hard link fails so we do a copy. But then the subsequent hard links will link to that copy, and since it's outside of the WindowsApps folder, it apparently runs fine.

    So let's consider that theory proven, and leave the "why can't I hard link inside a package" question to other people. Thanks for testing it!

  12. added a commit that references this issue on Feb 19, 2026
    624ffb6
  13. added a commit that references this issue on Feb 23, 2026
    c6ee3eb
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions