Marc Dobler | Web Developer, DIY Maker

Marc Dobler

How to compile and install wxPython on Raspberry Pi?

If you need to install wxPython on Raspbian Buster for a project, the installation of that module can be a little bit tricky. It needs to be compiled for Raspbian from source files to have something working nicely.

Here you can find step by step explanation of how to do it.

Requirements

  • Raspberry Pi
  • Python 3.x
  • time, lots of time

Step 1

First, you need to open a terminal (shortcut ctrl + alt + t)

sudo apt-get update
sudo apt-get install dpkg-dev build-essential libjpeg-dev libtiff-dev libsdl1.2-dev libgstreamer-plugins-base0.10-dev libnotify-dev freeglut3 freeglut3-dev libwebkitgtk-dev libghc-gtk3-dev libwxgtk3.0-gtk3-dev

if you use the pre-installed Python 3:

sudo apt-get install python3.7-dev

Step 2

Now, let’s make the virtual environment. I made mine right off the /home/pi directory, but you can put it anywhere. Some like to put all their virtual environments (virtenv) in specific locations.

Let’s make one (wx is the name of the virtenv we are creating, change it to suit):

cd ~
python3 -m venv wx
source ~/wx/bin/activate

Step 3

The first thing you need is wxPython.

Go to:

https://pypi.org/project/wxPython/#files

Down of the bottom of the choices, you will see “wxPython-4.1.0.tar.gz … Source”.

Download wxPython-4.1.0.tar.gz

Use your browser if you can. The file should go into your ~/Downloads folder. The link currently is the very human unfriendly:

https://files.pythonhosted.org/packages/cb/4f/1e21d3c079c973ba862a18f3be73c2bbe2e6bc25c96d94df605b5cbb494d/wxPython-4.1.0.tar.gz

Okay, that’s not exactly a professional comment but sometimes you just have to call it what it is.

cd ~
mv ~Downloads/wxPython-4.1.0.tar.gz
tar xf wxPython-4.1.0.tar.gz

Next step, make sure you are in the environment you want to install wxPython into.

cd wxPython-4.1.0
pip3 install -r requirements.txt

The next part is the big one. This will take a while, anywhere from a few hours to 18+ hours on a Raspberry Pi Zero.

python3 build.py build bdist_wheel --jobs=1

After waiting ~ 8 hours

Now to install it in Python as a package (the name of this file varies depending on the Python version you build it with. ie. wxPython-4.1.0-cp38-cp38-linux_armv7l.whl for Python 3.8) :

cd ~/wxPython-4.1.0/dist
pip3 install wxPython-4.1.0-cp37-cp37m-linux_armv7l.whl

After waiting ~ 1 hour

Now let’s test it:

cd ~/wxPython-4.1.0.post2/demo
python3 demo.py

Enjoy!

Subscribe.

Get new posts delivered to your inbox

They're not frequent, promise ✌️ you can also subscribe to the RSS feed.

Please select all the ways you would like to hear from Blog:

You can unsubscribe at any time by clicking the link in the footer of our emails. For information about our privacy practices, please visit our website.

We use Mailchimp as our marketing platform. By clicking below to subscribe, you acknowledge that your information will be transferred to Mailchimp for processing. Learn more about Mailchimp's privacy practices here.