Skip to content

2.0.0

Latest

Choose a tag to compare

@primetime43 primetime43 released this 15 May 09:25
· 1 commit to main since this release

A near-total rewrite. The v1.x GUI was a thin pyenv command runner; 2.0.0 turns it into a real management surface for
Python versions on Windows.

What's new

Status panel

  • Live banner showing the active Python version and where it was set.
  • global / local / shell scopes displayed side by side, refreshed automatically after every operation.
  • PATH check that warns when pyenv-win\shims is missing, with a one-click Fix PATH that prepends bin and
    shims to your USER PATH (no admin needed).
  • "↻ Refresh" button to re-query on demand.

Install / browse Python versions

  • One-click "Install latest 3.X" buttons for each recent major series, auto-populated from pyenv install -l.
  • Browse installable dialog with major-version filter, live search, "installed" marker, and "latest stable"
    highlight. Install directly from the dialog with a double-click or the Install button.

Manage installed versions

  • New Manage installed… dialog — Treeview showing version, executable path, disk usage, and active marker.
    Right-click any row for:
    • Set as Global
    • Uninstall… (confirms before deleting)
    • Create venv… — pick a folder, runs python -m venv with the selected interpreter, prints an activation hint.
    • Manage packages (pip)… — non-modal panel showing installed packages, with install / freeze / uninstall
      actions.
    • Open Folder / Copy Path

Friendly command runner

  • Subcommand dropdown now shows human labels with descriptions instead of bare pyenv names.
  • Version-aware argument autocomplete (installed versions for local / global / shell / uninstall, installable
    versions for install).
  • Quick action buttons for common no-arg commands (List installed, Current version, Rehash shims, Update mirrors).

Output & UX

  • ANSI escape sequences stripped so pyenv-win's colored output stops rendering as garbage boxes.
  • Progress bar with phase label (e.g. "Downloading…", "Installing…") during long operations.
  • Stop button — force-terminates the whole subprocess tree, not just the parent shell.
  • Hover tooltips on every button.
  • Right-click menu on the output pane: Copy / Copy all / Save to file… / Clear.
  • Window geometry and last-selected command persist across launches (%APPDATA%\pyenv-win-GUI\settings.json).
  • Open pyenv root button next to Install / Uninstall.

Under the hood

  • Codebase reorganized from one ~1300-line file into a pyenv_gui/ package, split along the Tk boundary so the pure
    helpers (shell.py, pyenv.py) are testable in isolation.
  • Vendored the official install-pyenv-win.ps1 — installs no longer download a script into the working directory at
    runtime.
  • Pytest suite covering version parsing, sorting, series extraction, size formatting, ANSI stripping, and command
    metadata.
  • Re-entry guard prevents double-firing pyenv operations from rapid clicks or open dialogs.
  • Type hints on all pure-helper functions.
  • Standalone .exe builds and Releases are now produced automatically via GitHub Actions on every numeric tag.

Compatibility

  • Requires Windows 10 or 11. PowerShell is used under the hood but ships with Windows.
  • The prebuilt .exe has no Python dependency on the target machine.
  • Building from source requires Python 3.9+ (standard library only — no third-party deps).

Full Changelog: v1.0.1...2.0.0