dronecan / gui_tool

MIT License
23 stars 23 forks source link

Type error on load #6

Closed WickedShell closed 2 years ago

WickedShell commented 2 years ago

After installing with sudo I get the following error:

[wickedshell@lackey ~]$ dronecan_gui_tool 
2022-01-19 14:43:56,767 INFO dronecan_gui_tool.main Spawned
2022-01-19 14:43:57,182 INFO dronecan_gui_tool.widgets.console Jupyter is not available
Traceback (most recent call last):
  File "/usr/lib/python3.10/site-packages/dronecan_gui_tool/widgets/console.py", line 18, in <module>
    from qtconsole.rich_jupyter_widget import RichJupyterWidget
  File "/usr/lib/python3.10/site-packages/qtconsole/rich_jupyter_widget.py", line 4, in <module>
    from base64 import decodestring
ImportError: cannot import name 'decodestring' from 'base64' (/usr/lib/python3.10/base64.py)
2022-01-19 14:43:57,193 INFO dronecan_gui_tool.main Starting the application
2022-01-19 14:44:05,075 INFO dronecan.driver.slcan IO process started with PID 40257
2022-01-19 14:44:05,075 INFO dronecan.driver.slcan Could not adjust priority of the IO process: PermissionError(1, 'Operation not permitted')
2022-01-19 14:44:05,078 INFO dronecan.driver.slcan Init: Sending command b''
2022-01-19 14:44:05,078 INFO dronecan.driver.slcan Init: Waiting for ACK...
2022-01-19 14:44:05,179 INFO dronecan.driver.slcan Init: Sending command b'C'
2022-01-19 14:44:05,179 INFO dronecan.driver.slcan Init: Waiting for ACK...
2022-01-19 14:44:05,180 INFO dronecan.driver.slcan Init: Sending command b'S8'
2022-01-19 14:44:05,180 INFO dronecan.driver.slcan Init: Waiting for ACK...
2022-01-19 14:44:05,225 INFO dronecan.driver.slcan Init: Sending command b'O'
2022-01-19 14:44:05,225 INFO dronecan.driver.slcan Init: Waiting for ACK...
2022-01-19 14:44:05,229 INFO dronecan.driver.slcan Init: Sending command b'F'
2022-01-19 14:44:05,229 INFO dronecan.driver.slcan Init: Waiting for ACK...
2022-01-19 14:44:05,230 INFO dronecan.driver.slcan Init: Ignoring byte b'F' while waiting for ACK
2022-01-19 14:44:05,230 INFO dronecan.driver.slcan Init: Ignoring byte b'0' while waiting for ACK
2022-01-19 14:44:05,230 INFO dronecan.driver.slcan Init: Ignoring byte b'0' while waiting for ACK
2022-01-19 14:44:05,330 INFO dronecan.driver.slcan RX worker started
2022-01-19 14:44:05,330 INFO dronecan.driver.slcan IO process initialization complete
2022-01-19 14:44:05,431 INFO dronecan_gui_tool.main Creating main window; iface '/dev/serial/by-id/usb-Zubax_Robotics_Zubax_Babel_28003E00185130465638362000000000-if00'
QLayout: Attempting to add QLayout "" to RealtimeLogWidget "", which already has a layout
QLayout: Attempting to add QLayout "" to RealtimeLogWidget "", which already has a layout
QLayout: Attempting to add QLayout "" to DynamicNodeIDAllocatorWidget "", which already has a layout
QLayout: Attempting to add QLayout "" to FileServerWidget "", which already has a layout
QLayout: Attempting to add QLayout "" to MainWindow "", which already has a layout
QLayout: Attempting to add QLayout "" to MainWindow "", which already has a layout
QLayout: Attempting to add QLayout "" to MainWindow "", which already has a layout
2022-01-19 14:44:05,439 INFO dronecan_gui_tool.main Init complete, invoking the Qt event loop
Traceback (most recent call last):
  File "/usr/lib/python3.10/site-packages/qtawesome/iconic_font.py", line 141, in pixmap
    self.paint(QPainter(pm), QRect(QPoint(0, 0), size), mode, state)
  File "/usr/lib/python3.10/site-packages/qtawesome/iconic_font.py", line 135, in paint
    self.painter.paint(
  File "/usr/lib/python3.10/site-packages/qtawesome/iconic_font.py", line 65, in paint
    self._paint_icon(iconic, painter, rect, mode, state, opt)
  File "/usr/lib/python3.10/site-packages/qtawesome/iconic_font.py", line 112, in _paint_icon
    painter.setFont(iconic.font(prefix, draw_size))
  File "/usr/lib/python3.10/site-packages/qtawesome/iconic_font.py", line 311, in font
    font.setPixelSize(size)
TypeError: setPixelSize(self, int): argument 1 has unexpected type 'float'
QPainter::end: Painter ended with 2 saved states
Traceback (most recent call last):
  File "/usr/lib/python3.10/site-packages/qtawesome/iconic_font.py", line 141, in pixmap
    self.paint(QPainter(pm), QRect(QPoint(0, 0), size), mode, state)
  File "/usr/lib/python3.10/site-packages/qtawesome/iconic_font.py", line 135, in paint
    self.painter.paint(
  File "/usr/lib/python3.10/site-packages/qtawesome/iconic_font.py", line 65, in paint
    self._paint_icon(iconic, painter, rect, mode, state, opt)
  File "/usr/lib/python3.10/site-packages/qtawesome/iconic_font.py", line 112, in _paint_icon
    painter.setFont(iconic.font(prefix, draw_size))
  File "/usr/lib/python3.10/site-packages/qtawesome/iconic_font.py", line 311, in font
    font.setPixelSize(size)
TypeError: setPixelSize(self, int): argument 1 has unexpected type 'float'
QPainter::end: Painter ended with 2 saved states

The painter tracebacks repeats a number of times that I trimmed here for brevity. The icons are all missing in the GUI as well.

Enviorment:

[wickedshell@lackey ~]$ python --version
Python 3.10.1
davidbuzz commented 2 years ago

https://doc.qt.io/qt-5/qfont.html#setPixelSize says that font.setPixelSize(size) expects its argument to be an integer in the QT bindings themselves, and python package 'qtawesome' => iconic_font.py isn't properly ensuring that... is that right?

davidbuzz commented 2 years ago

either way... tridge's mention suggests this might now be fixed in master... can u retest, @WickedShell ?

WickedShell commented 2 years ago

@davidbuzz I can't retest, because in the effort to fix the installer, the installer is now completely broken for me. If I do a pip install as sudo (which should not be needed, but seperate converastion), it succeeds without any listed error, but there isn't a valid program anywhere on disk to run. If I try to install it as user then it just bails due to invalid permissions.

$ sudo pip install install git+https://github.com/DroneCAN/gui_tool@master
[sudo] password for wickedshell: 
Collecting git+https://github.com/DroneCAN/gui_tool@master
  Cloning https://github.com/DroneCAN/gui_tool (to revision master) to /tmp/pip-req-build-joh_rwof
  Running command git clone -q https://github.com/DroneCAN/gui_tool /tmp/pip-req-build-joh_rwof
  Running command git submodule update --init --recursive -q
Collecting install
  Downloading install-1.3.5-py3-none-any.whl (3.2 kB)
Requirement already satisfied: setuptools>=18.5 in /usr/lib/python3.10/site-packages (from dronecan-gui-tool==1.0.0) (59.1.1)
Requirement already satisfied: dronecan>=1.0.0 in /usr/lib/python3.10/site-packages (from dronecan-gui-tool==1.0.0) (1.0.5)
Requirement already satisfied: pyserial>=3.0 in /usr/lib/python3.10/site-packages (from dronecan-gui-tool==1.0.0) (3.5)
Requirement already satisfied: qtawesome>=0.3.1 in /usr/lib/python3.10/site-packages (from dronecan-gui-tool==1.0.0) (0.3.3)
Requirement already satisfied: qtconsole>=4.2.0 in /usr/lib/python3.10/site-packages (from dronecan-gui-tool==1.0.0) (5.2.2)
Requirement already satisfied: pyyaml>=5.1 in /usr/lib/python3.10/site-packages (from dronecan-gui-tool==1.0.0) (5.4.1)
Requirement already satisfied: easywebdav>=1.2 in /usr/lib/python3.10/site-packages (from dronecan-gui-tool==1.0.0) (1.2.0)
Requirement already satisfied: numpy in /usr/lib/python3.10/site-packages (from dronecan-gui-tool==1.0.0) (1.22.1)
Requirement already satisfied: pyqt5 in /usr/lib/python3.10/site-packages (from dronecan-gui-tool==1.0.0) (5.15.6)
Requirement already satisfied: traitlets in /usr/lib/python3.10/site-packages (from dronecan-gui-tool==1.0.0) (5.1.1)
Requirement already satisfied: jupyter-client in /usr/lib/python3.10/site-packages (from dronecan-gui-tool==1.0.0) (7.1.1)
Requirement already satisfied: ipykernel in /usr/lib/python3.10/site-packages (from dronecan-gui-tool==1.0.0) (6.7.0)
Requirement already satisfied: pygments in /usr/lib/python3.10/site-packages (from dronecan-gui-tool==1.0.0) (2.11.2)
Requirement already satisfied: qtpy in /usr/lib/python3.10/site-packages (from dronecan-gui-tool==1.0.0) (2.0.0)
Requirement already satisfied: pyqtgraph in /usr/lib/python3.10/site-packages (from dronecan-gui-tool==1.0.0) (0.12.3)
Requirement already satisfied: requests in /usr/lib/python3.10/site-packages (from easywebdav>=1.2->dronecan-gui-tool==1.0.0) (2.26.0)
Requirement already satisfied: six in /usr/lib/python3.10/site-packages (from qtawesome>=0.3.1->dronecan-gui-tool==1.0.0) (1.16.0)
Requirement already satisfied: pyzmq>=17.1 in /usr/lib/python3.10/site-packages (from qtconsole>=4.2.0->dronecan-gui-tool==1.0.0) (22.3.0)
Requirement already satisfied: ipython-genutils in /usr/lib/python3.10/site-packages (from qtconsole>=4.2.0->dronecan-gui-tool==1.0.0) (0.2.0)
Requirement already satisfied: jupyter-core in /usr/lib/python3.10/site-packages (from qtconsole>=4.2.0->dronecan-gui-tool==1.0.0) (4.9.1)
Requirement already satisfied: ipython>=7.23.1 in /usr/lib/python3.10/site-packages (from ipykernel->dronecan-gui-tool==1.0.0) (8.0.1)
Requirement already satisfied: tornado<7.0,>=4.2 in /usr/lib/python3.10/site-packages (from ipykernel->dronecan-gui-tool==1.0.0) (6.1)
Requirement already satisfied: nest-asyncio in /usr/lib/python3.10/site-packages (from ipykernel->dronecan-gui-tool==1.0.0) (1.5.4)
Requirement already satisfied: matplotlib-inline<0.2.0,>=0.1.0 in /usr/lib/python3.10/site-packages (from ipykernel->dronecan-gui-tool==1.0.0) (0.1.3)
Requirement already satisfied: debugpy<2.0,>=1.0.0 in /usr/lib/python3.10/site-packages (from ipykernel->dronecan-gui-tool==1.0.0) (1.5.1)
Requirement already satisfied: stack-data in /usr/lib/python3.10/site-packages (from ipython>=7.23.1->ipykernel->dronecan-gui-tool==1.0.0) (0.1.4)
Requirement already satisfied: decorator in /usr/lib/python3.10/site-packages (from ipython>=7.23.1->ipykernel->dronecan-gui-tool==1.0.0) (5.1.1)
Requirement already satisfied: black in /usr/lib/python3.10/site-packages (from ipython>=7.23.1->ipykernel->dronecan-gui-tool==1.0.0) (21.12b0)
Requirement already satisfied: jedi>=0.16 in /usr/lib/python3.10/site-packages (from ipython>=7.23.1->ipykernel->dronecan-gui-tool==1.0.0) (0.18.1)
Requirement already satisfied: backcall in /usr/lib/python3.10/site-packages (from ipython>=7.23.1->ipykernel->dronecan-gui-tool==1.0.0) (0.2.0)
Requirement already satisfied: pickleshare in /usr/lib/python3.10/site-packages (from ipython>=7.23.1->ipykernel->dronecan-gui-tool==1.0.0) (0.7.5)
Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /usr/lib/python3.10/site-packages (from ipython>=7.23.1->ipykernel->dronecan-gui-tool==1.0.0) (3.0.24)
Requirement already satisfied: pexpect>4.3 in /usr/lib/python3.10/site-packages (from ipython>=7.23.1->ipykernel->dronecan-gui-tool==1.0.0) (4.8.0)
Requirement already satisfied: parso<0.9.0,>=0.8.0 in /usr/lib/python3.10/site-packages (from jedi>=0.16->ipython>=7.23.1->ipykernel->dronecan-gui-tool==1.0.0) (0.8.3)
Requirement already satisfied: python-dateutil>=2.1 in /usr/lib/python3.10/site-packages (from jupyter-client->dronecan-gui-tool==1.0.0) (2.8.2)
Requirement already satisfied: entrypoints in /usr/lib/python3.10/site-packages (from jupyter-client->dronecan-gui-tool==1.0.0) (0.3)
Requirement already satisfied: ptyprocess>=0.5 in /usr/lib/python3.10/site-packages (from pexpect>4.3->ipython>=7.23.1->ipykernel->dronecan-gui-tool==1.0.0) (0.7.0)
Requirement already satisfied: wcwidth in /usr/lib/python3.10/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=7.23.1->ipykernel->dronecan-gui-tool==1.0.0) (0.2.5)
Requirement already satisfied: mypy-extensions>=0.4.3 in /usr/lib/python3.10/site-packages (from black->ipython>=7.23.1->ipykernel->dronecan-gui-tool==1.0.0) (0.4.3)
Requirement already satisfied: typing-extensions!=3.10.0.1 in /usr/lib/python3.10/site-packages (from black->ipython>=7.23.1->ipykernel->dronecan-gui-tool==1.0.0) (4.0.1)
Collecting tomli<2.0.0,>=0.2.6
  Downloading tomli-1.2.3-py3-none-any.whl (12 kB)
Requirement already satisfied: click>=7.1.2 in /usr/lib/python3.10/site-packages (from black->ipython>=7.23.1->ipykernel->dronecan-gui-tool==1.0.0) (8.0.3)
Requirement already satisfied: platformdirs>=2 in /usr/lib/python3.10/site-packages (from black->ipython>=7.23.1->ipykernel->dronecan-gui-tool==1.0.0) (2.4.1)
Requirement already satisfied: pathspec<1,>=0.9.0 in /usr/lib/python3.10/site-packages (from black->ipython>=7.23.1->ipykernel->dronecan-gui-tool==1.0.0) (0.9.0)
Requirement already satisfied: PyQt5-Qt5>=5.15.2 in /usr/lib/python3.10/site-packages (from pyqt5->dronecan-gui-tool==1.0.0) (5.15.2)
Requirement already satisfied: PyQt5-sip<13,>=12.8 in /usr/lib/python3.10/site-packages (from pyqt5->dronecan-gui-tool==1.0.0) (12.9.0)
Requirement already satisfied: packaging in /usr/lib/python3.10/site-packages (from qtpy->dronecan-gui-tool==1.0.0) (20.9)
Requirement already satisfied: pyparsing>=2.0.2 in /usr/lib/python3.10/site-packages (from packaging->qtpy->dronecan-gui-tool==1.0.0) (2.4.7)
Requirement already satisfied: chardet>=3.0.2 in /usr/lib/python3.10/site-packages (from requests->easywebdav>=1.2->dronecan-gui-tool==1.0.0) (4.0.0)
Requirement already satisfied: idna>=2.5 in /usr/lib/python3.10/site-packages (from requests->easywebdav>=1.2->dronecan-gui-tool==1.0.0) (3.3)
Requirement already satisfied: urllib3>=1.21.1 in /usr/lib/python3.10/site-packages (from requests->easywebdav>=1.2->dronecan-gui-tool==1.0.0) (1.26.8)
Requirement already satisfied: asttokens in /usr/lib/python3.10/site-packages (from stack-data->ipython>=7.23.1->ipykernel->dronecan-gui-tool==1.0.0) (2.0.5)
Requirement already satisfied: pure-eval in /usr/lib/python3.10/site-packages (from stack-data->ipython>=7.23.1->ipykernel->dronecan-gui-tool==1.0.0) (0.2.1)
Requirement already satisfied: executing in /usr/lib/python3.10/site-packages (from stack-data->ipython>=7.23.1->ipykernel->dronecan-gui-tool==1.0.0) (0.8.2)
Installing collected packages: tomli, install
  Attempting uninstall: tomli
    Found existing installation: tomli 2.0.0
    Uninstalling tomli-2.0.0:
      Successfully uninstalled tomli-2.0.0
Successfully installed install-1.3.5 tomli-1.2.3