Web Analytics Made Easy - Statcounter
Skip to content

Platforms

PySimpleGUI is designed to run across a wide range of:

  • Operating Systems
    • Window
    • Linux
    • Mac
    • Android
  • Versions of Python (3.4 through 3.11+)
  • Python implementations
    • CPython
    • PyPy
  • Browser-based Development
    • Trinket
    • REPL.IT
  • Hardware
    • Desktop and laptop PCs
    • Raspberry Pi
    • Android Devices
    • Custom hardware
  • GUI Frameworks
    • tkinter
    • Qt's PySide2, PySide6
    • WxPython
    • Remi

Operating Systems

Python is capable of running on Windows, Linux and Mac-OS operating systems. Because tkinter is able to run on these operating systems, so is PySimpleGUI. Generally speaking, you won't need to change any of your PySimpleGUI code to move from one Operating System to another.

There can be some limitations on some platforms. For example, semi-transparent windows are not possible on the Raspberry Pi because the alpha-channel is not supported. Another limitation is that only on Windows can you have windows that have completely transparent regions that you are able to click-through to windows or the desktop underneath. See the section on the Window object that explains the use of the transparent_color parameter for more information on this feature.

TODO Add link to transparent_color section

Windows

Windows is perhaps the easiest and most flexible of the 3 operating systems to run Python on. It's not difficult to have every version of Python running on the same Windows environment without the need to set up a virtual environment. You can simply each version of Python in a different folder and invoke the python.exe file for the version you wish to run.

It's also been the more stable of the 3 operating systems for PySimpleGUI applications. There are simply not very many variables that change from one setup to another. A Windows 10 environment for one person looks very similar to a Windows 10 environment for another.

Linux

Linux is also a great environment for Python and tends to be stable. However, it's not as easy to install Python and much more difficult to run multiple versions of Python simultaneously.

Because Linux has numerous distributions and multiple desktop environments (e.g. GNOME and KDE), this adds some variability that can cause some problems to occur on specific desktop environments.

Some of the GUI Frameworks are a little more difficult to setup on Linux than on Windows. WxPython is one example that's is more difficult to install on Linux than Windows.

One benefit Linux offers is the ability to run on hardware configurations other than a personal computer (Desktop or Laptop PC). The best example of this is the Raspberry Pi. The Pi runs Linux and tkinter runs on the Pi as well, so PySimpleGUI also runs there.

Mac

The Mac is the "problem child" of the 3 operating systems. When Apple releases a new version of the MacOS, there have been numerous times that it's caused problems for PySimpleGUI users. The combination of the unique architecture of the Mac and the simple fact that the percentage of Python users that are running on a Mac is much lower than Windows and Linux means the Mac support gets less software development resources.

About 4% of the PySimpleGUI users use a Mac. Despite the low number of users, the PySimpleGUI project has remained committed to providing support for Mac users, often disproportionately. Some of the most expensive problems to workaround have been on the Mac, but it's worth the investment. We want users to be able to have the same high-quality experience regardless of the operating system they are using.

In the early phase of the PySimpleGUI project, many of the problems on the Mac resolved when users switched from using Homebrew to downloading Python from python.org.

Android

PySimpleGUI does not currently run as a native Android application. However, you can run an application called PyDroid3 and Termux that will run your PySimpleGUI code. You'll find a section in the Demo Programs that demonstrate integrating with your phone's camera using OpenCV using this setup.

Python Versions (3.4 through 3.11)

The PySimpleGUI core code you get when you install PySimpleGUI is compatible with version 3.4 and later. The Demo Programs assume you are running on version 3.6 or later, but most will run on 3.4. The only 3.6 feature that tends to be used in Demo Programs are f-strings. So even if you need to run a Demo Program on a 3.4 or 3.5 version of Python, it will not require a significant amount of effort to make the necessary changes.

Why support versions of Python going back so far? There are several reasons. One is driven by cost for users. Some business users have spent time and money testing their software using a specific version of Python. It can be both risky and expensive to upgrade a product.

Another reason is that some users have no reason to upgrade or they cannot upgrade because the Python installer blocks them from installing Python on their hardware. If you have a Window 7 PC, then you cannot upgrade your Python environment to the latest version of Python. In fact, you can't upgrade to version 3.9. The CPython installer will block you from installing on a Windows 7 machine if you attempt to install Python 3.9 on a Windows 7 PC. If you're running Windows XP, then 3.5 won't install on your PC. Some PySimpleGUI users are in countries where Windows XP machines are still in use. We want those users to be able to run PySimpleGUI if they wish to.

When you are authoring a PySimpleGUI application that you want to make available to anyone that wishes to run it, make a careful choice of which version of Python you require. Not all users are able to run the newest version of Python. Your choice of language features you use when writing your program will impact who will be able to run your code. It's an important decision that should be made with care. Programming is an exercise in making trade-offs and balancing needs versus wants. Want to use the Python match statement? If yes, then understand you are reducing the number of people that will be able to run your code.

Python Implementations

No sure if you're aware, but there is at least one alternative to Python available from python.org. For a number of years PySimpleGUI has been running on PyPy, "a fast, compliant, alternative implementation of Python".

It's been a fascinating discovery and a real boost to performance to have PyPy as an alternate choice.

Browser-Based Development

There are 2 online services that PySimpleGUI currently integrates with:

  1. Trinket
  2. REPL.IT

Trinket

Trinket is the service that is used to provide the PySimpleGUI programs you see in the eCookbook. With this service, you're able to embed PySimpleGUI programs into a webpage, complete with source code and the ability to modify the source easily.

PySimpleGUI includes code to make your Trinket programs work more smoothly. For example, because Trinket does not provide titlebars, PySimpleGUI automatically adds a Customer Titlebar to your program.

REPL.IT

Another in-browser Python development environment is REPL.IT. The major difference between Trinket and REPL.IT is that REPL.IT allows projects to install packages from PyPI. Trinket has a set of standard packages they provide and you're limited to those packages. They each have benefits and both are worth investigating if you need to share your code in a teaching environment.

Hardware

By far the most common hardware that PySimpleGUI is running on are desktop PCs running Window & Mac and on Linux servers. Your choices don't end there however. If Python and one of the supported GUI frameworks will run, then so will PySimpleGUI and your PySimpleGUI application.

Raspberry Pi

PySimpleGUI has been running on the Pi since the first release of PySimpleGUI. Every release is tested on a Pi to ensure interoperability. If your Pi has a touchscreen then you'll have a great experience with PySimpleGUI as the two work quite well together.

Mobile Devices Running Android

See section on Android under Operating System

TODO Add link up to OS section

Output Devices

In addition to running as a desktop GUI, you can also run your GUI in a web browser by running PySimpleGUIWeb.

This is ideal for "headless" setups like a Raspberry Pi that is at the core of a robot or other design that does not have a normal display screen. For these devices, run a PySimpleGUIWeb program that never exits.

Then connect to your application by going to the Pi's IP address (and port #) using a browser and you'll be in communication with your application. You can use it to make configuration changes or even control a robot or other piece of hardware using buttons in your GUI.