Package compatability

Heads up! You've already completed this tutorial.

Wu_Yi | 2020-06-14 23:44:17 UTC | #1

I once tried to make a machine learning app with the scikit-learn package. I found something weird, if someone could help me to explain that would be great.

Basically, the fbs install seems to have problem of recognising this package, internet search seems to suggest that is because of this package is yet to be supported by pyinstaller https://github.com/pyinstaller/pyinstaller/wiki/Supported-Packages

So what is the way around this issue?


martin | 2020-06-15 08:52:04 UTC | #2

I don't think that is an exhaustive list so it not being on the list doesn't mean it won't work (it says at the top "most packages will work out of the box"). That said, scikit-learn uses Cython so could expect issues.

What kinds of errors did you get? Usually you can solve problems in PyInstaller using hooks e.g. https://pyinstaller.readthedocs.io/en/stable/hooks.html#understanding-pyinstaller-hooks

The complete guide to packaging Python GUI applications with PyInstaller.
[[ discount.discount_pc ]]% OFF for the next [[ discount.duration ]] [[discount.description ]] with the code [[ discount.coupon_code ]]

Purchasing Power Parity

Developers in [[ country ]] get [[ discount.discount_pc ]]% OFF on all books & courses with code [[ discount.coupon_code ]]

There is an example hook here which might do it.

from hookutils import collect_submodules hiddenimports = collect_submodules('sklearn')

Unfortunately, I don't think you can use custom PyInstaller hooks with fbs. You should be able to package with PyInstaller itself though.


Well done, you've finished this tutorial! Mark As Complete
[[ user.completed.length ]] completed [[ user.streak+1 ]] day streak

Package compatability was written by Martin Fitzpatrick .

Martin Fitzpatrick has been developing Python/Qt apps for 8 years. Building desktop applications to make data-analysis tools more user-friendly, Python was the obvious choice. Starting with Tk, later moving to wxWidgets and finally adopting PyQt.