jmason86 / MinXSS_Beacon_Decoder

Beacon decoder for the MinXSS CubeSat in space; MinXSS-2 launch on 2018-11-19
http://lasp.colorado.edu/home/minxss
GNU General Public License v3.0
11 stars 6 forks source link

Qt v5.11 -- what components required? #19

Closed K4KDR closed 5 years ago

K4KDR commented 5 years ago

On Ubuntu 16.04 (64-bit), I ran the command:

k4kdr@:~/MinXSS_Beacon_Decoder$ python3 minxss_beacon_decoder.py 
Traceback (most recent call last):
  File "minxss_beacon_decoder.py", line 5, in <module>
    from PySide2 import QtGui, QtCore
ImportError: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5.11' not found (required by /home/k4kdr/.local/lib/python3.5/site-packages/PySide2/QtGui.abi3.so)

... and as you can see I get a Qt error. When attempting to download & install the latest version of Qt5, the list of available products is staggering. The download when selecting all of the v 5.11.2 (latest) packages was over 7 GB and would take days on a modest internet connection.

Could we please get some guidance on exactly which components of Qt are required to support this application? There is a reference in your README to:

The GUI is built with the designer component of Qt Creator (open source version)

... but it would be helpful to the non-programmer if the exact Qt components could be listed as they appear on the download list.

Many thanks.

-Scott, K4KDR .

jmason86 commented 5 years ago

I plan to release an environment.yml file as part of the next big release that'll capture everything needed to run the python code so no one should run into problems with missing modules anymore.

But to address your questions directly: Qt Creator is really only necessary if you want to edit the interface. Ditto for needing Qt at all. To fix your issue immediately, I think all you need to do is either conda install pyside2 (if you are using anaconda to manage your python packages) or pip install pyside2 (otherwise).

Let me know if that works.

Thanks for being such an active participant in this project!

K4KDR commented 5 years ago

UPDATE:

While unable to run minxss_beacon_decoder.py from the command line, I have found that I can run it after performing the following steps:

1, add the following to line1 of the minxss_beacon_decoder.py file:

#!/usr/bin/env python3

2, change the permissions on minxss_beacon_decoder.py to "755" to make it executable

(shown below after the reception of locally generated test packets from MinXSS-1)

screenshot from 2018-09-27 10-02-26

The steps that I have listed above are only my trial & error observations; I do not know if this is the best way to handle the running of minxss_beacon_decoder.py on a linux computer or not.

-Scott, K4KDR

K4KDR commented 5 years ago

Thank you for the reply - I had not seen that before my last post.

Yes, to get to this point I did install "pip install pyside2". So, that, combined with the steps listed in my comment above allowed the GUI to run properly.

jmason86 commented 5 years ago

The environment.yml file is now in the repository. Here's how to apply it if you're using anaconda.

That should eliminate the need for your step 1. I'll have to search about your step 2.. that's kinda weird. Are you double clicking on the .py from your file explorer? Or navigating to it in terminal and doing python minxss_beacon_decoder.py? Or launching ipython from terminal and then calling the code?

K4KDR commented 5 years ago

I was able to run the GUI by double-clicking from the linux file explorer, but only after making the .py file executable. Downloaded files in linux are not normally set with the "execute" permission so it's common for "chmod 755 {filename}" to be required before a file can be run as an executable.

jmason86 commented 5 years ago

Ah yeah. Can similarly do chmod +x {filename} to the same effect. I don't think there's anything I can do on my side to avoid that other than release the built application. Still don't have access to a Linux machine to build it with though.

If you'd be willing to build it on your machine when the time comes, I can help out. It's mostly straightforward, though pyinstaller can be finicky sometimes.

I'm going to close the issue since it seems resolved but have added to my todo list to work out a build for Linux in the 2.0 release.