Build wxPython On Raspberry PiJames Key
These are the build and install instructions.
This does not seem to work with GTK3 at the moment. So we will stick with GTK2.
READ THEM ALL FIRST!
Especially the note at the end.
The first part of this is optional. I have tested this on both Python 3.4 (the default Pi install for Jessie) Python 3.5(Stretch) and on Python 3.6.4. To use Python 3.6 you need to install it first, which mean building it.
If you wish, update the version numbers to the latest release. I know that this version works, and it's the most recent as of the writing of these directions.
These instructions are based on the Github gist:
First we need to setup the build dependencies.
$ sudo apt-get update $ sudo apt-get install build-essential tk-dev libncurses5-dev libncursesw5-dev libreadline6-dev libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev
Then download and build Python.
$ wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tar.xz $ tar xf Python-3.6.4.tar.xz $ cd Python-3.6.4 $ ./configure –-enable-optimizations $ make $ sudo make altinstall
Build and Install:
Okay so you want or need wxPython 4.0.x on your Raspberry Pi or you like to watch lots of messages scroll by on long builds. Either way this is how to do it.
First things first MAKE A VIRTUAL ENVIORNMENT for the build and install. Okay this isn't strictly needed but if you don't know about venv or virtual environments, they do keep the environment cleaner for each project. The only issue is that you need to run the pip install for each virtual environment you want to use it in. It's your choice.
These instructions will use Python 3.4 but they are identical for 3.6, just substitute the version number you want. For example:
$ python3.4 ...
$ python3.6 ...
Not too scary, right?
These instructions are based on the Github Phoenix README:
Okay now to make the virtual environment. I made mine right off the /home/pi directory but you can put it anywhere. Some like to put all there virtual environments (virtenv) in specific locations.
Lets make one (wx is the name of the virtenv we are creating, change it to suit):
$ cd ~ $ python3.4 -m venv wx $ source ~/wx/bin/activate
The last line activates the environment. Your prompt should change to show that you are in an active virtenv. To deactivate type deactivate. If you log out, close the terminal, or restart the Pi, or open a new terminal, you need to run the activate command again. If not you won't be in the virtual environment.
First thing you need is wxPython. Go to:
The first link will give you a choice of releases, as before I tested 4.0.0b2 and it works, but you might get here later and a newer release is available. PLEASE use the tarball from these links, I too wanted the latest, greatest version. Don't. If you download it from github you need to do a massive amount of work. Let the marvelous people who developed this package do that, then thank them.
Down at the bottom of the choices you'll see “wxPython-4.0.1.tar.gz … Source”.
Use your browser if you can. The the link currently is the very human unfriendly:
Ick. Okay that's not exactly a professional comment but sometime you just have to call it what it is.
$ cd ~ $ mv ~/Downloads/wxPython-4.0.1.tar.gz . $ tar xf wxPython-4.0.1.tar.gz
Okay here we go. Let's make sure we have the dependencies.
$ 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
If you are using Python 3.6 you are all set to continue but if you are using the pre-installed Python 3:
$ sudo apt-get install python3.4-dev
Next step, make sure you are in the environment you want to install wxPython into.
$ cd wxPython-4.0.1 $ pip3 install -r requirements.txt
Okay the next part is the big one. This will take a while, anywhere from a few hours, to 18+ hours on a Pi zero.
$ python3 build.py build bdist_wheel --jobs=1 --gtk2
Now to install it in Python as a package:
$ cd ~/wxPython-4.0.1/dist $ pip3 install wxPython-4.0.1-cp36-cp36m-linux_armv7l.whl
Now let’s test it:
$ cd ~/wxPython-4.0.1/demo $ python3 demo.py
The build.py script has many options, but I will warn you unless you know what your doing, don't play with them. I had built the package for ver 3.4 then decided to try 3.6. So I ran the cleanall option to clean out the last builds binaries. It did and it cleaned all the SIP and Doxygen bits out too. That defeated the whole point of me getting the pypi tarball. To clean up, delete the directory and extract it again.
Beware you may need an SD card larger than 16MBs
**Other things to note** There were a few times that my pi seemed to freeze. Leave it alone for awhile. Give it 15-20 minutes. If it doesn't recover unplug it, enable the virtenv and restart by using your last command. Usually the 'pip install'. Above all don't panic.