报错:ModuleNotFoundError: No module named ‘lark’
安装lark后任然报错:
完整报错
wds@Ubuntu22:~/workspace/ROS2/ws01_plumbing$ colcon clean
colcon build
usage: colcon [-h] [--log-base LOG_BASE] [--log-level LOG_LEVEL]
{build,extension-points,extensions,graph,info,list,metadata,test,test-result,version-check} ...
colcon: error: argument verb_name: invalid choice: 'clean' (choose from 'build', 'extension-points', 'extensions', 'graph', 'info', 'list', 'metadata', 'test', 'test-result', 'version-check')
Starting >>> base_interfaces_demo
--- stderr: base_interfaces_demo
Traceback (most recent call last):
File "/opt/ros/humble/share/rosidl_generator_c/cmake/../../../lib/rosidl_generator_c/rosidl_generator_c", line 8, in <module>
from rosidl_generator_c import generate_c
File "/opt/ros/humble/local/lib/python3.10/dist-packages/rosidl_generator_c/__init__.py", line 15, in <module>
from rosidl_cmake import convert_camel_case_to_lower_case_underscore
File "/opt/ros/humble/local/lib/python3.10/dist-packages/rosidl_cmake/__init__.py", line 24, in <module>
from rosidl_parser.parser import parse_idl_file
File "/opt/ros/humble/local/lib/python3.10/dist-packages/rosidl_parser/parser.py", line 20, in <module>
from lark import Lark
ModuleNotFoundError: No module named 'lark'
gmake[2]: *** [CMakeFiles/base_interfaces_demo__rosidl_generator_c.dir/build.make:87:rosidl_generator_c/base_interfaces_demo/msg/student.h] 错误 1
gmake[1]: *** [CMakeFiles/Makefile2:212:CMakeFiles/base_interfaces_demo__rosidl_generator_c.dir/all] 错误 2
gmake[1]: *** 正在等待未完成的任务....
Traceback (most recent call last):
File "/opt/ros/humble/share/rosidl_generator_cpp/cmake/../../../lib/rosidl_generator_cpp/rosidl_generator_cpp", line 8, in <module>
from rosidl_generator_cpp import generate_cpp
File "/opt/ros/humble/local/lib/python3.10/dist-packages/rosidl_generator_cpp/__init__.py", line 17, in <module>
from rosidl_cmake import generate_files
File "/opt/ros/humble/local/lib/python3.10/dist-packages/rosidl_cmake/__init__.py", line 24, in <module>
from rosidl_parser.parser import parse_idl_file
File "/opt/ros/humble/local/lib/python3.10/dist-packages/rosidl_parser/parser.py", line 20, in <module>
from lark import Lark
ModuleNotFoundError: No module named 'lark'
gmake[2]: *** [CMakeFiles/base_interfaces_demo__cpp.dir/build.make:91:rosidl_generator_cpp/base_interfaces_demo/msg/student.hpp] 错误 1
gmake[1]: *** [CMakeFiles/Makefile2:317:CMakeFiles/base_interfaces_demo__cpp.dir/all] 错误 2
gmake: *** [Makefile:146:all] 错误 2
---
Failed <<< base_interfaces_demo [0.52s, exited with code 2]
Summary: 0 packages finished [0.78s]
1 package failed: base_interfaces_demo
1 package had stderr output: base_interfaces_demo
2 packages not processed
解决办法:
- 确认
lark
模块已经安装在正确路径:
python3 -m pip install lark -i https://pypi.tuna.tsinghua.edu.cn/simple
- 验证
lark
安装:
python3 -c "import lark; print(lark.__version__)"
- 设置
PYTHONPATH
环境变量:
确保当前终端会话中 PYTHONPATH
包含 lark
模块的路径。
export PYTHONPATH=$PYTHONPATH:/home/wds/.local/lib/python3.10/site-packages
- 重新构建:
colcon build
如果问题仍然存在,尝试以下方法确保环境变量在所有终端会话中都能被正确识别:
- 编辑
.bashrc
文件:
nano ~/.bashrc
- 在文件末尾添加以下行:
export PYTHONPATH=$PYTHONPATH:/home/wds/.local/lib/python3.10/site-packages
- 保存并退出,然后重新加载
.bashrc
:
source ~/.bashrc
- 重新构建:
colcon build
通过这些步骤,你应该能够确保 lark
模块被正确识别并解决构建时的问题。