Skip to content

"py uninstall --purge" crashes with INTERNAL ERROR #288

Description

@Lusiiky

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.0

Describe the bug
Running py uninstall --purge crashes with an internal error:

[ERROR] INTERNAL ERROR: TypeError: 'NoneType' object is not callable

The command starts normally and removes runtimes and cache directories, but fails during the final stage while purging shortcuts.

To Reproduce

  1. Install Python Install Manager (MSIX from python.org)
  2. Install at least one runtime with py install (tried with 3.10 and latest 3.14)
  3. Run:
    py uninstall --purge
    
  4. Confirm with Y or Enter
  5. Observe crash after "Purging all shortcuts"

Expected behavior
py uninstall --purge should complete successfully without throwing an internal exception.

Additional context

>> Writing logs to C:\Users\Lusiiky\AppData\Local\Temp\python_uninstall_20260322153836_7300.log
>> Python installation manager 26.0
Copyright (c) Python Software Foundation. All Rights Reserved.
BEGIN uninstall_command.execute: []
Reading installs from C:\Users\Lusiiky\AppData\Local\Python
Found 1 install
Calculating default install
Filtering installs by tag = 3
tag '3' matched 1 install
- 1 core install(s) by prefix
default_platform '-64' matched 1 install
Default install will be pythoncore-3.10-64
> Purging Python 3.10.11 from C:\Users\Lusiiky\AppData\Local\Python\pythoncore-3.10-64
Atomically removing these files first: python.exe, python3.dll, python310.dll, pythonw.exe, vcruntime140.dll, vcruntime140_1.dll, __install__.json
Files successfully removed
> Purging saved downloads from C:\Users\Lusiiky\AppData\Local\Python\_cache
Current PATH contains C:\Users\Lusiiky\AppData\Local\Microsoft\WindowsApps;D:\Users\Lusiiky\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\Lusiiky\AppData\Local\Muse Hub\lib;C:\Users\Lusiiky\.lmstudio\bin;C:\Users\Lusiiky\AppData\Local\JetBrains\Toolbox\scripts;%USERPROFILE%\AppData\Local\Microsoft\WindowsApps;C:\Users\Lusiiky\AppData\Local\Microsoft\WinGet\Packages\derrod.legendary_Microsoft.Winget.Source_8wekyb3d8bbwe;;C:\Users\Lusiiky\AppData\Local\Programs\ExifTool;C:\Users\Lusiiky\AppData\Roaming\npm;C:\Users\Lusiiky\AppData\Local\PowerToys\DSCModules\
> Purging global commands from C:\Users\Lusiiky\AppData\Local\Python\bin
Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip.exe
Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip.exe.__script__.py
Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip.exe.__target__
Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.9.exe
Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.9.exe.__script__.py
Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.9.exe.__target__
Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.exe
Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.exe.__script__.py
Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.exe.__target__
Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python.exe
Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python.exe.__target__
Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python3.10.exe
Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python3.10.exe.__target__
Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python3.exe
Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python3.exe.__target__
Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw.exe
Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw.exe.__target__
Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw3.10.exe
Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw3.10.exe.__target__
Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw3.exe
Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw3.exe.__target__
> Purging all shortcuts
Cleaning up registry entries
Removing HKEY_CURRENT_USER\Software\Python\PythonCore\3.10
Cleaning up Start menu shortcuts
Removing C:\Users\Lusiiky\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.10\Python 3.10.lnk
Removing C:\Users\Lusiiky\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.10\Python 3.10 Online Documentation.lnk
Removing C:\Users\Lusiiky\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.10
Removing C:\Users\Lusiiky\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python
Removing ARP registration for pymanager-pythoncore-3.10-64
!! INTERNAL ERROR: TypeError: 'NoneType' object is not callable
TRACEBACK:
Traceback (most recent call last):
File "manage\__init__.py", line 50, in main
File "manage\commands.py", line 900, in execute
File "manage\uninstall_command.py", line 109, in execute
TypeError: 'NoneType' object is not callable

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingrelease-blockerDo not release without fixing this issue!

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

    , 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
     blocks
    (function() {
    function addCopyButtons() {
    document.querySelectorAll('pre code').forEach(function(codeBlock) {
    if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
    codeBlock.parentElement.setAttribute('data-copy-added', 'true');
    var btn = document.createElement('button');
    btn.textContent = 'Copy';
    btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
    btn.onmouseover = function() { this.style.opacity = '1'; };
    btn.onmouseout = function() { this.style.opacity = '0.7'; };
    btn.onclick = function() {
    navigator.clipboard.writeText(codeBlock.textContent).then(function() {
    btn.textContent = 'Copied!';
    setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
    });
    };
    codeBlock.parentElement.style.position = 'relative';
    codeBlock.parentElement.appendChild(btn);
    });
    }
    addCopyButtons();
    // Re-run on dynamic content
    var observer = new MutationObserver(addCopyButtons);
    observer.observe(document.body, { childList: true, subtree: true });
    })();
    }
    } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
    })();
    (function(){
    try {
    var __m = "github.com";
    var __re = new RegExp('^' + "github\\.com" + '
    "py uninstall --purge" crashes with INTERNAL ERROR · Issue #288 · python/pymanager · GitHub
    Skip to content

    "py uninstall --purge" crashes with INTERNAL ERROR #288

    Description

    @Lusiiky

    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.0

    Describe the bug
    Running py uninstall --purge crashes with an internal error:

    [ERROR] INTERNAL ERROR: TypeError: 'NoneType' object is not callable
    

    The command starts normally and removes runtimes and cache directories, but fails during the final stage while purging shortcuts.

    To Reproduce

    1. Install Python Install Manager (MSIX from python.org)
    2. Install at least one runtime with py install (tried with 3.10 and latest 3.14)
    3. Run:
      py uninstall --purge
      
    4. Confirm with Y or Enter
    5. Observe crash after "Purging all shortcuts"

    Expected behavior
    py uninstall --purge should complete successfully without throwing an internal exception.

    Additional context

    >> Writing logs to C:\Users\Lusiiky\AppData\Local\Temp\python_uninstall_20260322153836_7300.log
    >> Python installation manager 26.0
    Copyright (c) Python Software Foundation. All Rights Reserved.
    BEGIN uninstall_command.execute: []
    Reading installs from C:\Users\Lusiiky\AppData\Local\Python
    Found 1 install
    Calculating default install
    Filtering installs by tag = 3
    tag '3' matched 1 install
    - 1 core install(s) by prefix
    default_platform '-64' matched 1 install
    Default install will be pythoncore-3.10-64
    > Purging Python 3.10.11 from C:\Users\Lusiiky\AppData\Local\Python\pythoncore-3.10-64
    Atomically removing these files first: python.exe, python3.dll, python310.dll, pythonw.exe, vcruntime140.dll, vcruntime140_1.dll, __install__.json
    Files successfully removed
    > Purging saved downloads from C:\Users\Lusiiky\AppData\Local\Python\_cache
    Current PATH contains C:\Users\Lusiiky\AppData\Local\Microsoft\WindowsApps;D:\Users\Lusiiky\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\Lusiiky\AppData\Local\Muse Hub\lib;C:\Users\Lusiiky\.lmstudio\bin;C:\Users\Lusiiky\AppData\Local\JetBrains\Toolbox\scripts;%USERPROFILE%\AppData\Local\Microsoft\WindowsApps;C:\Users\Lusiiky\AppData\Local\Microsoft\WinGet\Packages\derrod.legendary_Microsoft.Winget.Source_8wekyb3d8bbwe;;C:\Users\Lusiiky\AppData\Local\Programs\ExifTool;C:\Users\Lusiiky\AppData\Roaming\npm;C:\Users\Lusiiky\AppData\Local\PowerToys\DSCModules\
    > Purging global commands from C:\Users\Lusiiky\AppData\Local\Python\bin
    Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip.exe
    Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip.exe.__script__.py
    Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip.exe.__target__
    Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.9.exe
    Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.9.exe.__script__.py
    Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.9.exe.__target__
    Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.exe
    Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.exe.__script__.py
    Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.exe.__target__
    Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python.exe
    Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python.exe.__target__
    Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python3.10.exe
    Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python3.10.exe.__target__
    Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python3.exe
    Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python3.exe.__target__
    Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw.exe
    Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw.exe.__target__
    Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw3.10.exe
    Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw3.10.exe.__target__
    Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw3.exe
    Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw3.exe.__target__
    > Purging all shortcuts
    Cleaning up registry entries
    Removing HKEY_CURRENT_USER\Software\Python\PythonCore\3.10
    Cleaning up Start menu shortcuts
    Removing C:\Users\Lusiiky\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.10\Python 3.10.lnk
    Removing C:\Users\Lusiiky\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.10\Python 3.10 Online Documentation.lnk
    Removing C:\Users\Lusiiky\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.10
    Removing C:\Users\Lusiiky\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python
    Removing ARP registration for pymanager-pythoncore-3.10-64
    !! INTERNAL ERROR: TypeError: 'NoneType' object is not callable
    TRACEBACK:
    Traceback (most recent call last):
    File "manage\__init__.py", line 50, in main
    File "manage\commands.py", line 900, in execute
    File "manage\uninstall_command.py", line 109, in execute
    TypeError: 'NoneType' object is not callable
    

    Metadata

    Metadata

    Assignees

    Labels

    bugSomething isn't workingrelease-blockerDo not release without fixing this issue!

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      , 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' "py uninstall --purge" crashes with INTERNAL ERROR · Issue #288 · python/pymanager · GitHub
      Skip to content

      "py uninstall --purge" crashes with INTERNAL ERROR #288

      Description

      @Lusiiky

      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.0

      Describe the bug
      Running py uninstall --purge crashes with an internal error:

      [ERROR] INTERNAL ERROR: TypeError: 'NoneType' object is not callable
      

      The command starts normally and removes runtimes and cache directories, but fails during the final stage while purging shortcuts.

      To Reproduce

      1. Install Python Install Manager (MSIX from python.org)
      2. Install at least one runtime with py install (tried with 3.10 and latest 3.14)
      3. Run:
        py uninstall --purge
        
      4. Confirm with Y or Enter
      5. Observe crash after "Purging all shortcuts"

      Expected behavior
      py uninstall --purge should complete successfully without throwing an internal exception.

      Additional context

      >> Writing logs to C:\Users\Lusiiky\AppData\Local\Temp\python_uninstall_20260322153836_7300.log
      >> Python installation manager 26.0
      Copyright (c) Python Software Foundation. All Rights Reserved.
      BEGIN uninstall_command.execute: []
      Reading installs from C:\Users\Lusiiky\AppData\Local\Python
      Found 1 install
      Calculating default install
      Filtering installs by tag = 3
      tag '3' matched 1 install
      - 1 core install(s) by prefix
      default_platform '-64' matched 1 install
      Default install will be pythoncore-3.10-64
      > Purging Python 3.10.11 from C:\Users\Lusiiky\AppData\Local\Python\pythoncore-3.10-64
      Atomically removing these files first: python.exe, python3.dll, python310.dll, pythonw.exe, vcruntime140.dll, vcruntime140_1.dll, __install__.json
      Files successfully removed
      > Purging saved downloads from C:\Users\Lusiiky\AppData\Local\Python\_cache
      Current PATH contains C:\Users\Lusiiky\AppData\Local\Microsoft\WindowsApps;D:\Users\Lusiiky\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\Lusiiky\AppData\Local\Muse Hub\lib;C:\Users\Lusiiky\.lmstudio\bin;C:\Users\Lusiiky\AppData\Local\JetBrains\Toolbox\scripts;%USERPROFILE%\AppData\Local\Microsoft\WindowsApps;C:\Users\Lusiiky\AppData\Local\Microsoft\WinGet\Packages\derrod.legendary_Microsoft.Winget.Source_8wekyb3d8bbwe;;C:\Users\Lusiiky\AppData\Local\Programs\ExifTool;C:\Users\Lusiiky\AppData\Roaming\npm;C:\Users\Lusiiky\AppData\Local\PowerToys\DSCModules\
      > Purging global commands from C:\Users\Lusiiky\AppData\Local\Python\bin
      Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip.exe
      Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip.exe.__script__.py
      Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip.exe.__target__
      Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.9.exe
      Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.9.exe.__script__.py
      Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.9.exe.__target__
      Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.exe
      Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.exe.__script__.py
      Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.exe.__target__
      Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python.exe
      Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python.exe.__target__
      Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python3.10.exe
      Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python3.10.exe.__target__
      Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python3.exe
      Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python3.exe.__target__
      Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw.exe
      Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw.exe.__target__
      Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw3.10.exe
      Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw3.10.exe.__target__
      Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw3.exe
      Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw3.exe.__target__
      > Purging all shortcuts
      Cleaning up registry entries
      Removing HKEY_CURRENT_USER\Software\Python\PythonCore\3.10
      Cleaning up Start menu shortcuts
      Removing C:\Users\Lusiiky\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.10\Python 3.10.lnk
      Removing C:\Users\Lusiiky\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.10\Python 3.10 Online Documentation.lnk
      Removing C:\Users\Lusiiky\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.10
      Removing C:\Users\Lusiiky\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python
      Removing ARP registration for pymanager-pythoncore-3.10-64
      !! INTERNAL ERROR: TypeError: 'NoneType' object is not callable
      TRACEBACK:
      Traceback (most recent call last):
      File "manage\__init__.py", line 50, in main
      File "manage\commands.py", line 900, in execute
      File "manage\uninstall_command.py", line 109, in execute
      TypeError: 'NoneType' object is not callable
      

      Metadata

      Metadata

      Assignees

      Labels

      bugSomething isn't workingrelease-blockerDo not release without fixing this issue!

      Projects

      No projects

        Milestone

        No milestone

        Relationships

        None yet

        Development

        No branches or pull requests

        Issue actions

        , 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' "py uninstall --purge" crashes with INTERNAL ERROR · Issue #288 · python/pymanager · GitHub
        Skip to content

        "py uninstall --purge" crashes with INTERNAL ERROR #288

        Description

        @Lusiiky

        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.0

        Describe the bug
        Running py uninstall --purge crashes with an internal error:

        [ERROR] INTERNAL ERROR: TypeError: 'NoneType' object is not callable
        

        The command starts normally and removes runtimes and cache directories, but fails during the final stage while purging shortcuts.

        To Reproduce

        1. Install Python Install Manager (MSIX from python.org)
        2. Install at least one runtime with py install (tried with 3.10 and latest 3.14)
        3. Run:
          py uninstall --purge
          
        4. Confirm with Y or Enter
        5. Observe crash after "Purging all shortcuts"

        Expected behavior
        py uninstall --purge should complete successfully without throwing an internal exception.

        Additional context

        >> Writing logs to C:\Users\Lusiiky\AppData\Local\Temp\python_uninstall_20260322153836_7300.log
        >> Python installation manager 26.0
        Copyright (c) Python Software Foundation. All Rights Reserved.
        BEGIN uninstall_command.execute: []
        Reading installs from C:\Users\Lusiiky\AppData\Local\Python
        Found 1 install
        Calculating default install
        Filtering installs by tag = 3
        tag '3' matched 1 install
        - 1 core install(s) by prefix
        default_platform '-64' matched 1 install
        Default install will be pythoncore-3.10-64
        > Purging Python 3.10.11 from C:\Users\Lusiiky\AppData\Local\Python\pythoncore-3.10-64
        Atomically removing these files first: python.exe, python3.dll, python310.dll, pythonw.exe, vcruntime140.dll, vcruntime140_1.dll, __install__.json
        Files successfully removed
        > Purging saved downloads from C:\Users\Lusiiky\AppData\Local\Python\_cache
        Current PATH contains C:\Users\Lusiiky\AppData\Local\Microsoft\WindowsApps;D:\Users\Lusiiky\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\Lusiiky\AppData\Local\Muse Hub\lib;C:\Users\Lusiiky\.lmstudio\bin;C:\Users\Lusiiky\AppData\Local\JetBrains\Toolbox\scripts;%USERPROFILE%\AppData\Local\Microsoft\WindowsApps;C:\Users\Lusiiky\AppData\Local\Microsoft\WinGet\Packages\derrod.legendary_Microsoft.Winget.Source_8wekyb3d8bbwe;;C:\Users\Lusiiky\AppData\Local\Programs\ExifTool;C:\Users\Lusiiky\AppData\Roaming\npm;C:\Users\Lusiiky\AppData\Local\PowerToys\DSCModules\
        > Purging global commands from C:\Users\Lusiiky\AppData\Local\Python\bin
        Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip.exe
        Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip.exe.__script__.py
        Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip.exe.__target__
        Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.9.exe
        Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.9.exe.__script__.py
        Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.9.exe.__target__
        Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.exe
        Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.exe.__script__.py
        Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.exe.__target__
        Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python.exe
        Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python.exe.__target__
        Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python3.10.exe
        Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python3.10.exe.__target__
        Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python3.exe
        Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python3.exe.__target__
        Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw.exe
        Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw.exe.__target__
        Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw3.10.exe
        Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw3.10.exe.__target__
        Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw3.exe
        Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw3.exe.__target__
        > Purging all shortcuts
        Cleaning up registry entries
        Removing HKEY_CURRENT_USER\Software\Python\PythonCore\3.10
        Cleaning up Start menu shortcuts
        Removing C:\Users\Lusiiky\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.10\Python 3.10.lnk
        Removing C:\Users\Lusiiky\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.10\Python 3.10 Online Documentation.lnk
        Removing C:\Users\Lusiiky\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.10
        Removing C:\Users\Lusiiky\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python
        Removing ARP registration for pymanager-pythoncore-3.10-64
        !! INTERNAL ERROR: TypeError: 'NoneType' object is not callable
        TRACEBACK:
        Traceback (most recent call last):
        File "manage\__init__.py", line 50, in main
        File "manage\commands.py", line 900, in execute
        File "manage\uninstall_command.py", line 109, in execute
        TypeError: 'NoneType' object is not callable
        

        Metadata

        Metadata

        Assignees

        Labels

        bugSomething isn't workingrelease-blockerDo not release without fixing this issue!

        Projects

        No projects

          Milestone

          No milestone

          Relationships

          None yet

          Development

          No branches or pull requests

          Issue actions

          , 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' "py uninstall --purge" crashes with INTERNAL ERROR · Issue #288 · python/pymanager · GitHub
          Skip to content

          "py uninstall --purge" crashes with INTERNAL ERROR #288

          Description

          @Lusiiky

          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.0

          Describe the bug
          Running py uninstall --purge crashes with an internal error:

          [ERROR] INTERNAL ERROR: TypeError: 'NoneType' object is not callable
          

          The command starts normally and removes runtimes and cache directories, but fails during the final stage while purging shortcuts.

          To Reproduce

          1. Install Python Install Manager (MSIX from python.org)
          2. Install at least one runtime with py install (tried with 3.10 and latest 3.14)
          3. Run:
            py uninstall --purge
            
          4. Confirm with Y or Enter
          5. Observe crash after "Purging all shortcuts"

          Expected behavior
          py uninstall --purge should complete successfully without throwing an internal exception.

          Additional context

          >> Writing logs to C:\Users\Lusiiky\AppData\Local\Temp\python_uninstall_20260322153836_7300.log
          >> Python installation manager 26.0
          Copyright (c) Python Software Foundation. All Rights Reserved.
          BEGIN uninstall_command.execute: []
          Reading installs from C:\Users\Lusiiky\AppData\Local\Python
          Found 1 install
          Calculating default install
          Filtering installs by tag = 3
          tag '3' matched 1 install
          - 1 core install(s) by prefix
          default_platform '-64' matched 1 install
          Default install will be pythoncore-3.10-64
          > Purging Python 3.10.11 from C:\Users\Lusiiky\AppData\Local\Python\pythoncore-3.10-64
          Atomically removing these files first: python.exe, python3.dll, python310.dll, pythonw.exe, vcruntime140.dll, vcruntime140_1.dll, __install__.json
          Files successfully removed
          > Purging saved downloads from C:\Users\Lusiiky\AppData\Local\Python\_cache
          Current PATH contains C:\Users\Lusiiky\AppData\Local\Microsoft\WindowsApps;D:\Users\Lusiiky\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\Lusiiky\AppData\Local\Muse Hub\lib;C:\Users\Lusiiky\.lmstudio\bin;C:\Users\Lusiiky\AppData\Local\JetBrains\Toolbox\scripts;%USERPROFILE%\AppData\Local\Microsoft\WindowsApps;C:\Users\Lusiiky\AppData\Local\Microsoft\WinGet\Packages\derrod.legendary_Microsoft.Winget.Source_8wekyb3d8bbwe;;C:\Users\Lusiiky\AppData\Local\Programs\ExifTool;C:\Users\Lusiiky\AppData\Roaming\npm;C:\Users\Lusiiky\AppData\Local\PowerToys\DSCModules\
          > Purging global commands from C:\Users\Lusiiky\AppData\Local\Python\bin
          Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip.exe
          Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip.exe.__script__.py
          Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip.exe.__target__
          Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.9.exe
          Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.9.exe.__script__.py
          Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.9.exe.__target__
          Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.exe
          Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.exe.__script__.py
          Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.exe.__target__
          Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python.exe
          Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python.exe.__target__
          Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python3.10.exe
          Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python3.10.exe.__target__
          Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python3.exe
          Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python3.exe.__target__
          Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw.exe
          Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw.exe.__target__
          Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw3.10.exe
          Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw3.10.exe.__target__
          Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw3.exe
          Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw3.exe.__target__
          > Purging all shortcuts
          Cleaning up registry entries
          Removing HKEY_CURRENT_USER\Software\Python\PythonCore\3.10
          Cleaning up Start menu shortcuts
          Removing C:\Users\Lusiiky\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.10\Python 3.10.lnk
          Removing C:\Users\Lusiiky\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.10\Python 3.10 Online Documentation.lnk
          Removing C:\Users\Lusiiky\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.10
          Removing C:\Users\Lusiiky\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python
          Removing ARP registration for pymanager-pythoncore-3.10-64
          !! INTERNAL ERROR: TypeError: 'NoneType' object is not callable
          TRACEBACK:
          Traceback (most recent call last):
          File "manage\__init__.py", line 50, in main
          File "manage\commands.py", line 900, in execute
          File "manage\uninstall_command.py", line 109, in execute
          TypeError: 'NoneType' object is not callable
          

          Metadata

          Metadata

          Assignees

          Labels

          bugSomething isn't workingrelease-blockerDo not release without fixing this issue!

          Projects

          No projects

            Milestone

            No milestone

            Relationships

            None yet

            Development

            No branches or pull requests

            Issue actions

            , 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' "py uninstall --purge" crashes with INTERNAL ERROR · Issue #288 · python/pymanager · GitHub
            Skip to content

            "py uninstall --purge" crashes with INTERNAL ERROR #288

            Description

            @Lusiiky

            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.0

            Describe the bug
            Running py uninstall --purge crashes with an internal error:

            [ERROR] INTERNAL ERROR: TypeError: 'NoneType' object is not callable
            

            The command starts normally and removes runtimes and cache directories, but fails during the final stage while purging shortcuts.

            To Reproduce

            1. Install Python Install Manager (MSIX from python.org)
            2. Install at least one runtime with py install (tried with 3.10 and latest 3.14)
            3. Run:
              py uninstall --purge
              
            4. Confirm with Y or Enter
            5. Observe crash after "Purging all shortcuts"

            Expected behavior
            py uninstall --purge should complete successfully without throwing an internal exception.

            Additional context

            >> Writing logs to C:\Users\Lusiiky\AppData\Local\Temp\python_uninstall_20260322153836_7300.log
            >> Python installation manager 26.0
            Copyright (c) Python Software Foundation. All Rights Reserved.
            BEGIN uninstall_command.execute: []
            Reading installs from C:\Users\Lusiiky\AppData\Local\Python
            Found 1 install
            Calculating default install
            Filtering installs by tag = 3
            tag '3' matched 1 install
            - 1 core install(s) by prefix
            default_platform '-64' matched 1 install
            Default install will be pythoncore-3.10-64
            > Purging Python 3.10.11 from C:\Users\Lusiiky\AppData\Local\Python\pythoncore-3.10-64
            Atomically removing these files first: python.exe, python3.dll, python310.dll, pythonw.exe, vcruntime140.dll, vcruntime140_1.dll, __install__.json
            Files successfully removed
            > Purging saved downloads from C:\Users\Lusiiky\AppData\Local\Python\_cache
            Current PATH contains C:\Users\Lusiiky\AppData\Local\Microsoft\WindowsApps;D:\Users\Lusiiky\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\Lusiiky\AppData\Local\Muse Hub\lib;C:\Users\Lusiiky\.lmstudio\bin;C:\Users\Lusiiky\AppData\Local\JetBrains\Toolbox\scripts;%USERPROFILE%\AppData\Local\Microsoft\WindowsApps;C:\Users\Lusiiky\AppData\Local\Microsoft\WinGet\Packages\derrod.legendary_Microsoft.Winget.Source_8wekyb3d8bbwe;;C:\Users\Lusiiky\AppData\Local\Programs\ExifTool;C:\Users\Lusiiky\AppData\Roaming\npm;C:\Users\Lusiiky\AppData\Local\PowerToys\DSCModules\
            > Purging global commands from C:\Users\Lusiiky\AppData\Local\Python\bin
            Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip.exe
            Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip.exe.__script__.py
            Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip.exe.__target__
            Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.9.exe
            Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.9.exe.__script__.py
            Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.9.exe.__target__
            Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.exe
            Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.exe.__script__.py
            Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.exe.__target__
            Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python.exe
            Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python.exe.__target__
            Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python3.10.exe
            Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python3.10.exe.__target__
            Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python3.exe
            Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python3.exe.__target__
            Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw.exe
            Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw.exe.__target__
            Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw3.10.exe
            Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw3.10.exe.__target__
            Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw3.exe
            Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw3.exe.__target__
            > Purging all shortcuts
            Cleaning up registry entries
            Removing HKEY_CURRENT_USER\Software\Python\PythonCore\3.10
            Cleaning up Start menu shortcuts
            Removing C:\Users\Lusiiky\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.10\Python 3.10.lnk
            Removing C:\Users\Lusiiky\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.10\Python 3.10 Online Documentation.lnk
            Removing C:\Users\Lusiiky\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.10
            Removing C:\Users\Lusiiky\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python
            Removing ARP registration for pymanager-pythoncore-3.10-64
            !! INTERNAL ERROR: TypeError: 'NoneType' object is not callable
            TRACEBACK:
            Traceback (most recent call last):
            File "manage\__init__.py", line 50, in main
            File "manage\commands.py", line 900, in execute
            File "manage\uninstall_command.py", line 109, in execute
            TypeError: 'NoneType' object is not callable
            

            Metadata

            Metadata

            Assignees

            Labels

            bugSomething isn't workingrelease-blockerDo not release without fixing this issue!

            Projects

            No projects

              Milestone

              No milestone

              Relationships

              None yet

              Development

              No branches or pull requests

              Issue actions

              , 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' "py uninstall --purge" crashes with INTERNAL ERROR · Issue #288 · python/pymanager · GitHub
              Skip to content

              "py uninstall --purge" crashes with INTERNAL ERROR #288

              Description

              @Lusiiky

              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.0

              Describe the bug
              Running py uninstall --purge crashes with an internal error:

              [ERROR] INTERNAL ERROR: TypeError: 'NoneType' object is not callable
              

              The command starts normally and removes runtimes and cache directories, but fails during the final stage while purging shortcuts.

              To Reproduce

              1. Install Python Install Manager (MSIX from python.org)
              2. Install at least one runtime with py install (tried with 3.10 and latest 3.14)
              3. Run:
                py uninstall --purge
                
              4. Confirm with Y or Enter
              5. Observe crash after "Purging all shortcuts"

              Expected behavior
              py uninstall --purge should complete successfully without throwing an internal exception.

              Additional context

              >> Writing logs to C:\Users\Lusiiky\AppData\Local\Temp\python_uninstall_20260322153836_7300.log
              >> Python installation manager 26.0
              Copyright (c) Python Software Foundation. All Rights Reserved.
              BEGIN uninstall_command.execute: []
              Reading installs from C:\Users\Lusiiky\AppData\Local\Python
              Found 1 install
              Calculating default install
              Filtering installs by tag = 3
              tag '3' matched 1 install
              - 1 core install(s) by prefix
              default_platform '-64' matched 1 install
              Default install will be pythoncore-3.10-64
              > Purging Python 3.10.11 from C:\Users\Lusiiky\AppData\Local\Python\pythoncore-3.10-64
              Atomically removing these files first: python.exe, python3.dll, python310.dll, pythonw.exe, vcruntime140.dll, vcruntime140_1.dll, __install__.json
              Files successfully removed
              > Purging saved downloads from C:\Users\Lusiiky\AppData\Local\Python\_cache
              Current PATH contains C:\Users\Lusiiky\AppData\Local\Microsoft\WindowsApps;D:\Users\Lusiiky\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\Lusiiky\AppData\Local\Muse Hub\lib;C:\Users\Lusiiky\.lmstudio\bin;C:\Users\Lusiiky\AppData\Local\JetBrains\Toolbox\scripts;%USERPROFILE%\AppData\Local\Microsoft\WindowsApps;C:\Users\Lusiiky\AppData\Local\Microsoft\WinGet\Packages\derrod.legendary_Microsoft.Winget.Source_8wekyb3d8bbwe;;C:\Users\Lusiiky\AppData\Local\Programs\ExifTool;C:\Users\Lusiiky\AppData\Roaming\npm;C:\Users\Lusiiky\AppData\Local\PowerToys\DSCModules\
              > Purging global commands from C:\Users\Lusiiky\AppData\Local\Python\bin
              Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip.exe
              Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip.exe.__script__.py
              Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip.exe.__target__
              Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.9.exe
              Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.9.exe.__script__.py
              Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.9.exe.__target__
              Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.exe
              Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.exe.__script__.py
              Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.exe.__target__
              Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python.exe
              Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python.exe.__target__
              Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python3.10.exe
              Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python3.10.exe.__target__
              Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python3.exe
              Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python3.exe.__target__
              Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw.exe
              Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw.exe.__target__
              Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw3.10.exe
              Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw3.10.exe.__target__
              Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw3.exe
              Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw3.exe.__target__
              > Purging all shortcuts
              Cleaning up registry entries
              Removing HKEY_CURRENT_USER\Software\Python\PythonCore\3.10
              Cleaning up Start menu shortcuts
              Removing C:\Users\Lusiiky\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.10\Python 3.10.lnk
              Removing C:\Users\Lusiiky\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.10\Python 3.10 Online Documentation.lnk
              Removing C:\Users\Lusiiky\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.10
              Removing C:\Users\Lusiiky\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python
              Removing ARP registration for pymanager-pythoncore-3.10-64
              !! INTERNAL ERROR: TypeError: 'NoneType' object is not callable
              TRACEBACK:
              Traceback (most recent call last):
              File "manage\__init__.py", line 50, in main
              File "manage\commands.py", line 900, in execute
              File "manage\uninstall_command.py", line 109, in execute
              TypeError: 'NoneType' object is not callable
              

              Metadata

              Metadata

              Assignees

              Labels

              bugSomething isn't workingrelease-blockerDo not release without fixing this issue!

              Projects

              No projects

                Milestone

                No milestone

                Relationships

                None yet

                Development

                No branches or pull requests

                Issue actions

                , 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); "py uninstall --purge" crashes with INTERNAL ERROR · Issue #288 · python/pymanager · GitHub
                Skip to content

                "py uninstall --purge" crashes with INTERNAL ERROR #288

                Description

                @Lusiiky

                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.0

                Describe the bug
                Running py uninstall --purge crashes with an internal error:

                [ERROR] INTERNAL ERROR: TypeError: 'NoneType' object is not callable
                

                The command starts normally and removes runtimes and cache directories, but fails during the final stage while purging shortcuts.

                To Reproduce

                1. Install Python Install Manager (MSIX from python.org)
                2. Install at least one runtime with py install (tried with 3.10 and latest 3.14)
                3. Run:
                  py uninstall --purge
                  
                4. Confirm with Y or Enter
                5. Observe crash after "Purging all shortcuts"

                Expected behavior
                py uninstall --purge should complete successfully without throwing an internal exception.

                Additional context

                >> Writing logs to C:\Users\Lusiiky\AppData\Local\Temp\python_uninstall_20260322153836_7300.log
                >> Python installation manager 26.0
                Copyright (c) Python Software Foundation. All Rights Reserved.
                BEGIN uninstall_command.execute: []
                Reading installs from C:\Users\Lusiiky\AppData\Local\Python
                Found 1 install
                Calculating default install
                Filtering installs by tag = 3
                tag '3' matched 1 install
                - 1 core install(s) by prefix
                default_platform '-64' matched 1 install
                Default install will be pythoncore-3.10-64
                > Purging Python 3.10.11 from C:\Users\Lusiiky\AppData\Local\Python\pythoncore-3.10-64
                Atomically removing these files first: python.exe, python3.dll, python310.dll, pythonw.exe, vcruntime140.dll, vcruntime140_1.dll, __install__.json
                Files successfully removed
                > Purging saved downloads from C:\Users\Lusiiky\AppData\Local\Python\_cache
                Current PATH contains C:\Users\Lusiiky\AppData\Local\Microsoft\WindowsApps;D:\Users\Lusiiky\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\Lusiiky\AppData\Local\Muse Hub\lib;C:\Users\Lusiiky\.lmstudio\bin;C:\Users\Lusiiky\AppData\Local\JetBrains\Toolbox\scripts;%USERPROFILE%\AppData\Local\Microsoft\WindowsApps;C:\Users\Lusiiky\AppData\Local\Microsoft\WinGet\Packages\derrod.legendary_Microsoft.Winget.Source_8wekyb3d8bbwe;;C:\Users\Lusiiky\AppData\Local\Programs\ExifTool;C:\Users\Lusiiky\AppData\Roaming\npm;C:\Users\Lusiiky\AppData\Local\PowerToys\DSCModules\
                > Purging global commands from C:\Users\Lusiiky\AppData\Local\Python\bin
                Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip.exe
                Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip.exe.__script__.py
                Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip.exe.__target__
                Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.9.exe
                Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.9.exe.__script__.py
                Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.9.exe.__target__
                Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.exe
                Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.exe.__script__.py
                Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pip3.exe.__target__
                Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python.exe
                Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python.exe.__target__
                Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python3.10.exe
                Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python3.10.exe.__target__
                Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python3.exe
                Purging C:\Users\Lusiiky\AppData\Local\Python\bin\python3.exe.__target__
                Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw.exe
                Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw.exe.__target__
                Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw3.10.exe
                Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw3.10.exe.__target__
                Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw3.exe
                Purging C:\Users\Lusiiky\AppData\Local\Python\bin\pythonw3.exe.__target__
                > Purging all shortcuts
                Cleaning up registry entries
                Removing HKEY_CURRENT_USER\Software\Python\PythonCore\3.10
                Cleaning up Start menu shortcuts
                Removing C:\Users\Lusiiky\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.10\Python 3.10.lnk
                Removing C:\Users\Lusiiky\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.10\Python 3.10 Online Documentation.lnk
                Removing C:\Users\Lusiiky\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python\Python 3.10
                Removing C:\Users\Lusiiky\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python
                Removing ARP registration for pymanager-pythoncore-3.10-64
                !! INTERNAL ERROR: TypeError: 'NoneType' object is not callable
                TRACEBACK:
                Traceback (most recent call last):
                File "manage\__init__.py", line 50, in main
                File "manage\commands.py", line 900, in execute
                File "manage\uninstall_command.py", line 109, in execute
                TypeError: 'NoneType' object is not callable
                

                Metadata

                Metadata

                Assignees

                Labels

                bugSomething isn't workingrelease-blockerDo not release without fixing this issue!

                Projects

                No projects

                  Milestone

                  No milestone

                  Relationships

                  None yet

                  Development

                  No branches or pull requests

                  Issue actions