wxPython
Cross platform GUI toolkit for Python, "Phoenix" version
What it is and what it does
wxPython is a mature Python wrapper around the wxWidgets C++ GUI toolkit, designed to let developers build native desktop applications that run on Windows, macOS, and Linux with a single codebase. It exposes the wxWidgets API through Python, allowing you to create windows, buttons, menus, dialogs, and other UI elements that adopt the native look and feel of each platform without requiring platform-specific code.
The package is actively maintained (latest release 2026-07-30, repository last commit 2026-08-13) and supports Python versions 3.10 through 3.14. It depends on numpy and typing-extensions at runtime. Installation uses prebuilt wheels for most common configurations, though the compiled nature of the underlying C++ bindings means install friction is moderate. The project includes documentation and demo applications to help developers get started.
Use it for:
- Build a desktop application that runs identically on Windows, macOS, and Linux without rewriting UI code for each platform.
- Create a data analysis tool with native GUI controls that integrates with numpy for numerical work.
- Develop a cross-platform IDE or editor that requires native menus, dialogs, and file pickers.
- Wrap legacy C++ business logic in a Python GUI layer while maintaining native platform appearance.
- Prototype or deploy a desktop utility that needs to work on multiple operating systems with minimal maintenance overhead.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
wxPython provides Python bindings to the wxWidgets C++ toolkit, enabling native cross-platform GUI applications on Windows, macOS, and Linux with minimal platform-specific code.
Yes, if you need a mature, actively maintained cross-platform desktop GUI framework and can accept medium install friction from compiled dependencies. The native look-and-feel on each platform and broad OS support make it a solid choice for cross-platform applications. Verify the wxWindows License terms against your project's licensing constraints before committing.
Install
wxpython on PyPI
pip
pip install wxpythonuv
uv add wxpythonpoetry
poetry add wxpythonInstalling wxPython
Before you install
Medium install friction due to compiled wheel dependencies; prebuilt wheels are available for Python 3.10–3.14 on Windows, macOS (both x86_64 and ARM64), and Linux. Maintenance is active with latest release 2026-07-30 and repository last commit 2026-08-13.
License in practice
License treatment is marked unclear; the package uses the wxWindows Library License. Verify compatibility with your project's licensing requirements before adoption, as the license terms may impose obligations not immediately obvious from standard SPDX classification.
Quickstart
pip install wxpython
from wxpython import wx
app = wx.App()
frame = wx.Frame(None, title='Hello')
frame.Show()
app.MainLoop()
Requires Python 3.10 or later; compiled wxWidgets C++ libraries are bundled in wheels but platform-specific installation may be needed on unsupported architectures.
Verify before relying
- Whether the wxWindows Library License is compatible with proprietary or copyleft projects in your context.
- Performance characteristics and feature completeness compared to other cross-platform GUI frameworks.
- Availability of prebuilt wheels for Python 3.14 on all target platforms beyond x86_64 macOS and Windows.
Package facts
| License | wxWindows Library License (https://opensource.org/licenses/wxwindows.php) (unclear) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 2 — numpy, typing-extensions |
| Maintenance | actively maintained — 15 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 278,961/month — #8,128 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: wxpython-4.3.1-cp310-cp310-macosx_10_10_x86_64.whl; wxpython-4.3.1-cp310-cp310-macosx_11_0_arm64.whl; wxpython-4.3.1-cp310-cp310-win32.whl; wxpython-4.3.1-cp310-cp310-win_amd64.whl; wxpython-4.3.1-cp311-cp311-macosx_10_10_x86_64.whl; wxpython-4.3.1-cp311-cp311-macosx_11_0_arm64.whl; wxpython-4.3.1-cp311-cp311-win32.whl; wxpython-4.3.1-cp311-cp311-win_amd64.whl; wxpython-4.3.1-cp311-cp311-win_arm64.whl; wxpython-4.3.1-cp312-cp312-macosx_10_13_x86_64.whl; wxpython-4.3.1-cp312-cp312-macosx_11_0_arm64.whl; wxpython-4.3.1-cp312-cp312-win32.whl; wxpython-4.3.1-cp312-cp312-win_amd64.whl; wxpython-4.3.1-cp312-cp312-win_arm64.whl; wxpython-4.3.1-cp313-cp313-macosx_10_13_x86_64.whl; wxpython-4.3.1-cp313-cp313-macosx_11_0_arm64.whl; wxpython-4.3.1-cp313-cp313-win32.whl; wxpython-4.3.1-cp313-cp313-win_amd64.whl; wxpython-4.3.1-cp313-cp313-win_arm64.whl; wxpython-4.3.1-cp314-cp314-macosx_10_15_x86_64.whl
Keywords: GUI, awesome, cross-platform, user-interface, wx, wxWidgets, wxWindows
Tags
More User Interfaces packages
Wraps any iterable to display a real-time…
copyleft · top 100 on PyPI
humanfriendlyFormats and parses numbers, file sizes,…
permissive · top 1,000 on PyPI
coloredlogsAdds colored output to Python's standard…
permissive · top 1,000 on PyPI
rich-argparseFormats argparse and optparse help output with…
permissive · top 1,000 on PyPI
progressbar2progressbar2 renders text-based progress bars…
permissive · top 5,000 on PyPI
inquirerpyInquirerPy provides interactive command-line…
permissive · top 5,000 on PyPI
PyQt6PyQt6 provides Python bindings for Qt v6,…
copyleft · top 5,000 on PyPI
PyQt5PyQt5 provides Python bindings for the Qt v5…
copyleft · top 5,000 on PyPI
pyshortcutsCreates desktop and Start Menu shortcuts for…
permissive · top 15,000 on PyPI
PySide6-EssentialsPySide6 Essentials provides Python bindings to…
copyleft · top 5,000 on PyPI
imgui-bundleDear ImGui Bundle provides Python bindings to a…
permissive · top 15,000 on PyPI
wgpuwgpu-py provides a Python binding to WebGPU, a…
permissive · top 15,000 on PyPI
pywebviewpywebview wraps native webview components to…
permissive · top 5,000 on PyPI
flet-desktopFlet Desktop provides a Python-only framework…
permissive · top 15,000 on PyPI
pywinautoAutomate Microsoft Windows GUI interactions by…
permissive · top 5,000 on PyPI
PyGObjectPyGObject provides Python bindings for…
copyleft · top 15,000 on PyPI