ArduPilot / ArduPilot/MAVProxy
BUG: Mavproxy from Pip is missing dependencies causing Import Errors.
- Dominant language
- Python
- Stars
- 595
- Forks
- 773
- Avg merge
- 2d 6h
- Merged PRs (30d)
- 18
Description
# Information
* OS: Ubuntu 23 , and reproduced on Windows 10
* Python version: Python `3.11.4`
* Pip version: `pip-23.2.1`
* Method to install mavproxy: pip
## Steps to reproduce
```bash
python3 -m venv .mavproxy
. .mavproxy/bin/activate
python3 -m pip install mavproxy
which mavproxy.py
>>> /home/ryan/Development/ardu_ws/src/MAVProxy/.mavproxy/bin/mavproxy.py
```
```
(.mavproxy) ryan@ryan-B650-970:~/Development/ardu_ws/src/MAVProxy$ mavproxy.py --console --map --aircraft test --master=:14550 --moddebug=3
Connect :14550 source_system=255
No module named 'wx'
Traceback (most recent call last):
File "/home/ryan/Development/ardu_ws/src/MAVProxy/.mavproxy/bin/mavproxy.py", line 679, in import_package
mod = __import__(name)
^^^^^^^^^^^^^^^^
File "/home/ryan/Development/ardu_ws/src/MAVProxy/.mavproxy/lib/python3.11/site-packages/MAVProxy/modules/mavproxy_console.py", line 9, in
from MAVProxy.modules.lib import wxconsole
File "/home/ryan/Development/ardu_ws/src/MAVProxy/.mavproxy/lib/python3.11/site-packages/MAVProxy/modules/lib/wxconsole.py", line 11, in
from MAVProxy.modules.lib import win_layout
File "/home/ryan/Development/ardu_ws/src/MAVProxy/.mavproxy/lib/python3.11/site-packages/MAVProxy/modules/lib/win_layout.py", line 4, in
import os, wx, pickle
ModuleNotFoundError: No module named 'wx'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/ryan/Development/ardu_ws/src/MAVProxy/.mavproxy/bin/mavproxy.py", line 526, in load_module
m = import_package(modpath)
^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ryan/Development/ardu_ws/src/MAVProxy/.mavproxy/bin/mavproxy.py", line 682, in import_package
mod = __import__(name)
^^^^^^^^^^^^^^^^
File "/home/ryan/Development/ardu_ws/src/MAVProxy/.mavproxy/lib/python3.11/site-packages/MAVProxy/modules/mavproxy_console.py", line 9, in
from MAVProxy.modules.lib import wxconsole
File "/home/ryan/Development/ardu_ws/src/MAVProxy/.mavproxy/lib/python3.11/site-packages/MAVProxy/modules/lib/wxconsole.py", line 11, in
from MAVProxy.modules.lib import win_layout
File "/home/ryan/Development/ardu_ws/src/MAVProxy/.mavproxy/lib/python3.11/site-packages/MAVProxy/modules/lib/win_layout.py", line 4, in
import os, wx, pickle
ModuleNotFoundError: No module named 'wx'
No module named 'console'
Traceback (most recent call last):
File "/home/ryan/Development/ardu_ws/src/MAVProxy/.mavproxy/bin/mavproxy.py", line 679, in import_package
mod = __import__(name)
^^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named 'console'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/ryan/Development/ardu_ws/src/MAVProxy/.mavproxy/bin/mavproxy.py", line 526, in load_module
m = import_package(modpath)
^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ryan/Development/ardu_ws/src/MAVProxy/.mavproxy/bin/mavproxy.py", line 682, in import_package
mod = __import__(name)
^^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named 'console'
Failed to load module: No module named 'console'.
No module named 'cv2'
Traceback (most recent call last):
File "/home/ryan/Development/ardu_ws/src/MAVProxy/.mavproxy/bin/mavproxy.py", line 528, in load_module
module = m.init(mpstate, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ryan/Development/ardu_ws/src/MAVProxy/.mavproxy/lib/python3.11/site-packages/MAVProxy/modules/mavproxy_map/__init__.py", line 927, in init
return MapModule(mpstate)
^^^^^^^^^^^^^^^^^^
File "/home/ryan/Development/ardu_ws/src/MAVProxy/.mavproxy/lib/python3.11/site-packages/MAVProxy/modules/mavproxy_map/__init__.py", line 64, in __init__
from MAVProxy.modules.mavproxy_map import mp_slipmap
File "/home/ryan/Development/ardu_ws/src/MAVProxy/.mavproxy/lib/python3.11/site-packages/MAVProxy/modules/mavproxy_map/mp_slipmap.py", line 13, in
import cv2
ModuleNotFoundError: No module named 'cv2'
No module named 'map'
Traceback (most recent call last):
File "/home/ryan/Development/ardu_ws/src/MAVProxy/.mavproxy/bin/mavproxy.py", line 679, in import_package
mod = __import__(name)
^^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named 'map'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/ryan/Development/ardu_ws/src/MAVProxy/.mavproxy/bin/mavproxy.py", line 526, in load_module
m = import_package(modpath)
^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ryan/Development/ardu_ws/src/MAVProxy/.mavproxy/bin/mavproxy.py", line 682, in import_package
mod = __import__(name)
^^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named 'map'
Failed to load module: No module named 'map'.
no script test/mavinit.scr
Log Directory: test/logs/2023-08-05/flight1
Telemetry log: test/logs/2023-08-05/flight1/flight.tlog
Waiting for heartbeat from :14550
MAV> 'WPModule' object has no attribute 'menu'
Traceback (most recent call last):
File "/home/ryan/Development/ardu_ws/src/MAVProxy/.mavproxy/bin/mavproxy.py", line 1044, in periodic_tasks
m.idle_task()
File "/home/ryan/Development/ardu_ws/src/MAVProxy/.mavproxy/lib/python3.11/site-packages/MAVProxy/modules/mavproxy_wp.py", line 224, in idle_task
self.module('map').add_menu(self.menu)
^^^^^^^^^
AttributeError: 'WPModule' object has no attribute 'menu'
'RallyModule' object has no attribute 'menu'
Traceback (most recent call last):
File "/home/ryan/Development/ardu_ws/src/MAVProxy/.mavproxy/bin/mavproxy.py", line 1044, in periodic_tasks
m.idle_task()
File "/home/ryan/Development/ardu_ws/src/MAVProxy/.mavproxy/lib/python3.11/site-packages/MAVProxy/modules/mavproxy_rally.py", line 80, in idle_task
self.module('map').add_menu(self.menu)
^^^^^^^^^
AttributeError: 'RallyModule' object has no attribute 'menu'
'FenceModule' object has no attribute 'menu'
Traceback (most recent call last):
File "/home/ryan/Development/ardu_ws/src/MAVProxy/.mavproxy/bin/mavproxy.py", line 1044, in periodic_tasks
m.idle_task()
File "/home/ryan/Development/ardu_ws/src/MAVProxy/.mavproxy/lib/python3.11/site-packages/MAVProxy/modules/mavproxy_fence.py", line 71, in idle_task
self.module('map').add_menu(self.menu)
^^^^^^^^^
AttributeError: 'FenceModule' object has no attribute 'menu'
```
## Workaround
```
python3 -m pip install opencv-python matplotlib wxPython
```
Contributor guide
No contributing guide indexed for this repository
Research direction
Reproduce the install in a fresh Python 3.11 virtual environment, then inspect the installed paths under MAVProxy/modules/mavproxy_console.py, modules/lib/win_layout.py, and modules/mavproxy_map/mp_slipmap.py. Verify that a pip installation provides the dependencies needed by the console and map modules, and confirm the reported import and follow-on menu errors no longer occur when running the documented command.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- matplotlib, opencv, python
- Domain
- build-system, cli
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100