In short, to build wxPython you can clone the git repo from github and then follow the steps in the readme file.
Based on my personal experience, your greatest challenge is likely to be that of fixing the small incompatibilities that will arise in the C++/Python bindings (sip files) when using a different version of wxWidgets than the one the current sip files are written for.
If you decide to attempt this, I would suggest first to ensure that you can fully build wxPython with the intended version of wxWidgets to make sure you have all the dependencies properly installed.
After that, checkout a fresh copy elsewhere or use git worktree to get an unpolluted copy. (Using cleanall instead might introduce subtle issues when you try to build later, because the build is not fully out-of-tree and cleanall does not truly revert everything.)
Then checkout a different version of wxWidgets in Phoenix/ext/wxWidgets and try the same build command that worked for you before… Fix any errors that occur…
I have not tried to build wxPython based on wxWidgets 3.3 so I am not sure what issues you will find. But based on prior wxWidgets upgrades, trying to build wxPython with a different version of wxWidgets is likely to fail in ways that may be hard to debug if you are not familiar with the SIP framework.
Thanks for the information, hopefully there’s unit tests to help me find the incompatibilities.
People are asking me to switch to QT, which I don’t want to do as wx makes it easy to wrap MFC