Danthewaann / snooker-ball-tracker

Demo app that detects/tracks snooker balls on a snooker table
MIT License
25 stars 10 forks source link

Can't run on Ubuntu 20.04 #4

Open ricardogffcouto opened 3 years ago

ricardogffcouto commented 3 years ago

Hello Daniel! Great work on developing this app :)

I've followed all steps but cannot get it to run on Ubuntu 20.04. I get the following error: Traceback (most recent call last): File "/home/ricardo/.local/share/virtualenvs/snooker-ball-tracker-YBvYRYDk/lib/python3.8/site-packages/snooker_ball_tracker-0.1.0-py3.8.egg/snooker_ball_tracker/settings.py", line 75, in __getattr__ KeyError: '__path__'

Any idea why this is happening?

Thanks!

Danthewaann commented 3 years ago

Hi @ricardogffcouto.

How are you running the app?

The attributes that are available from the settings.py file are:

['JSONEncoder', 'SnookerColour', '__DEFAULT_SETTINGS', '__SETTINGS', '__SettingsJSONEncoder', '__builtins__', '__cached__', '__doc__', '__file__', '__getattr__', '__loader__', '__name__', '__package__', '__settings_object_hook', '__spec__', 'json', 'load', 'np', 'save']

So trying to access __path__ from settings.py will fail in this case.

ricardogffcouto commented 3 years ago

So, step by step:

Danthewaann commented 3 years ago

I've been able to fix the __path__ issue (I'll get it committed soon), however another issue arises:

if you are installing pyqt5 through pipenv it will install version 5.15.4. For some reason opencv-python will not work with this version of pyqt5.

You can get the gui to work by installing opencv-python-headless instead of opencv-python. (However cli.py will no longer work as it relies on the gui components of opencv that don't get installed in opencv-python-headless.

I'll have to rework cli.py to create a small window using pyqt5 to display images instead, but for now you can get gui.py to work with the workaround above.

ricardogffcouto commented 3 years ago

These steps fixed my problem! Thanks :)

Danthewaann commented 3 years ago

Will target some work to rework cli.py and to swap over to using opencv-python-headless by default.