-
Notifications
You must be signed in to change notification settings - Fork 436
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Raspberry Pi doesn't have PyQtChart #441
Comments
Originally Raspbian was merely a rebuild of Debian (that said there are a lot of packages 🙂 ) so 99.9% of Debian was in Raspbian (the .1 being packages they couldn't build) but over the years things seem to have become a little more complex
|
Nope that's not it, doesn't seem to be in upstream Debian repos either |
See: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=892198 I submitted this several weeks ago but have not had any acknowledgement or seen any movement. I guess we'd need to go to Debian with some sort of solution. Perhaps we should reach out to Riverbank and see if they might help..? |
I might be wrong, but I think Ben might have contacted Riverbank about ARM/Raspberry pi wheels in the past. @bennuttall did you email/talk to them? If so what was their general response? Btw, why targetting Qt 5.9? Is that the version Debian strech is packaging?
|
Yup, @bennuttall did get in touch with Riverbank... but that was about source distributions and making binary wheels for ARM (i.e. Raspberry Pi) based devices. Their response was "too complicated and not worth the effort given the user base". They may respond more positively to a query about QCharts. As for 5.9 -- that's the version of Qt currently in Debian testing. |
@waveform80 did some digging recently:
Stretch was released in June 2017 and I'd expect Buster around mid-2020. I thought that the Plotter might work with gpiozero on our x86 distro, but Riverbank don't even provide x86 wheels (just x86_64). |
Would packages in Debian Testing end up in the current Debian Stable Stretch repos? Or do you have to be in Debian Testing release to get them before Buster? Taking in consideration we get all the PyQt related pacakges via APT it would make sense to try to get PyQtChart that way as well. |
Testing is Buster, until Buster is released. So no, Testing is about getting stuff ready for the next Debian release. Occasionally things are available in backports, so there's a possibility we could pull something from there, as long as it didn't require the Buster versions of all the things. |
If we could build it ourselves, we would, but it's undocumented and doesn't use standard tools. If Riverbank built it on a Pi (and we had the right version of qt for it) and supplied us with a wheel, we could stick it on piwheels and that would allow people to install it to unlock the plotter. But I can't see that happening. |
That's what I was afraid of, and buster is really far away. Backporting it would require to backport every single dependency, including Qt5 base, which I assume it's not going to be easy as it's likely a lot of programs in Stretch might depend on Qt5. PyQt has always been difficult to compile on Raspberry Pi. I could give it a go out of sheer curiosity, but if this is something we seriously wanted to give a go, then it might be easier to get a Yocto recipe based on Raspbian that includes all Qt5 5.7 dependencies already installed and build it in there instead of normal Raspbian. Not sure how "static" we could make a PyQtChart wheel at that point, or how it is packed without any of the shared libraries it might have with PyQt5 (haven't done any wheel yet), and I am even less sure if it would work on a normal raspbian image anyway. |
Well that was "fun"... After many failed attempts at getting the right dependencies with the right versions I managed to get PyQtChart compiled on the Pi. In the end I had to compile from source SIP (the package However, once everything was built and installed it turns out that I didn't use the right version of SIP (a previous config error said to use at least version 4.19, so I used exactly 4.19), so there was a mismatch of APIs between different PyQt modules.
I'll continue tomorrow, next step is to figure out what SIP version has API v12, and then recompile PyQtChart with that version instead. Note for future self: These are the steps that got me to this point. It's possible there might be some dependencies or steps missing, I tried a couple things that led me to the wrong path, and I excluded those, but I the stuff below should be enough.
SIP 4.19:
QtCharts 5.7:
PyQtChart 5.7:
|
So it looks like a newer SIP was the opposite direction of what we needed. With 4.19 I had:
And with 4.19.8:
Now the difficult part might be packaging, does anybody know of any good tutorials or articles explaning the intricacies of building wheels for complex stuff like this? |
@carlosperate, I am in awe of your stonkingly amazing work on this. It's heroic. It's immensely valuable. It always makes me grin like a Cheshire Cat. Kids and teachers are going to love this! So @bennuttall is the world expert on making binary wheel packages for Raspbian from source through his exceptional work on PiWheels, and you're both on this thread already..! 'nuff said. :-D |
Thanks to the fantastic work of @skitt (and @russel) it looks like debian will be getting a deb package in their package repos soon. Discussion can be found in #58. The code repository for the debian package is here: https://salsa.debian.org/skitt/pyqt5chart @XECDesign do you normally wait for the package to hit debian stable and trigger its way into raspbian, or are these repackaged in a different way/workflow? |
@carlosperate I'm on the raspberrypi.org end, not raspbian.org. When the package makes it into Debian stable, raspbian.org should automatically pick it up, but I'm guessing that's not going to happen any time soon. We may be able to backport the package before it hits stable and add it to stretch through the raspberrypi.org repo before then. |
Thanks for the quick reply @XECDesign!
Right, I see, sorry, didn't realised that one was managed by a different organisation.
Yeah, this was my concern as well, might be quite a while until that happens.
Sounds like the best path forward. Who could help us do that? And what can we do to help with the process? |
That's something I can do as long as there are no show-stopping issues. It may be possible that pyqtchart depends on a version of Qt that's newer than what's available in Stretch. I'll wait for the package to make it into unstable or testing and stabilise a bit before looking into it. |
Thanks @XECDesign, I'll keep an eye as well and we'll have definite info at that point. From the looks of it, the package from https://salsa.debian.org/skitt/pyqt5chart might be for Qt/PyQt/QtCharts v5.10.1 (the Qt version released for the latest PyQt5), and when I last installed PyQt5 using `apt-get install python3-pyqt5' in Raspbian Stretch (16th of April) it installed version 5.7. Debian Stretch stable has 5.7 as well: https://packages.debian.org/stretch/python3-pyqt5 I assume Raspian only packages from debian stable?
|
|
Right, we can’t upload a 5.7 build into Debian since unstable has 5.10.1 already and all packages must build in unstable first (apart from security updates etc.). I do have a 5.7 build though so I could make that available somewhere... I’m still figuring out a build issue with 5.10.1, I’ll deal with 5.7 once that’s done. |
Thank you so much @XECDesign and @skitt for all your help and guidance! @skitt, when you get all the details sorted, if you could make a 5.7 build in a different repo so that @XECDesign could create the Raspbian package it would be absolutely fantastic. Thanks again for all your efford moving this forward, your help here has been truly invaluable! |
Hi carlosperate Thank you. |
The |
There is no ARM linux compatible package for PyQtChar in PyPI or piwheel:
And there isn't an available package in the APT repos either:
So there is no plotter functionality in Raspberry Pi :(
Getting PyQt things to built on a raspberry pi has proven difficult, so that's a can or worms I'd rather not open, but maybe we could build a wheel for piwheels.
I wonder if ARM debian has a package for PyQtChart that we could adopt in raspbian, not sure if they already take all, or how that hierarchy works.
The text was updated successfully, but these errors were encountered: