MAVProxy
MAVProxy copied to clipboard
BUG: Mavproxy from Pip is missing dependencies causing Import Errors.
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
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 <module>
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 <module>
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 <module>
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 <module>
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 <module>
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 <module>
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 <module>
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
How should we install mavproxy in a venv? The environment setup doesn't work in a venv on ubuntu 22. https://ardupilot.org/mavproxy/docs/development/mavdevenvlinux.html#linux-development-environment
python3 -m venv .venv
. .venv/bin/activate
python3 -m setup.py build install --user
...
Using /home/ryan/.local/lib/python3.10/site-packages/pyserial-3.5-py3.10.egg
Searching for pynmeagps==1.0.43
Best match: pynmeagps 1.0.43
Using /home/ryan/.local/lib/python3.10/site-packages
Searching for pymavlink==2.4.42
Best match: pymavlink 2.4.42
Using /home/ryan/.local/lib/python3.10/site-packages
Searching for numpy==1.26.4
Best match: numpy 1.26.4
Installing f2py script to /home/ryan/.local/bin
Using /home/ryan/.local/lib/python3.10/site-packages
Searching for lxml==5.1.0
Best match: lxml 5.1.0
Using /home/ryan/.local/lib/python3.10/site-packages
Searching for future==1.0.0
Best match: future 1.0.0
Installing futurize script to /home/ryan/.local/bin
Installing pasteurize script to /home/ryan/.local/bin
Using /home/ryan/.local/lib/python3.10/site-packages
Finished processing dependencies for MAVProxy==1.8.71
/home/ryan/Dev/ardu_ws/src/MAVProxy/.venv/bin/python3: Error while finding module specification for 'setup.py' (ModuleNotFoundError: __path__ attribute not found on 'setup' while trying to find 'setup.py'). Try using 'setup' instead of 'setup.py' as the module name.
We started adding dependencies to the extras: https://github.com/ArduPilot/MAVProxy/pull/1568