ros2导入conda环境里的python包出错
-
环境是ubuntu20.04 ros2 foxy
我在代码里用sys.path.append导入import os import sys sys.path.append("/home/sss/anaconda3/envs/yolov5-sort/lib/python3.8/site-packages/") import torch import math
但用colcon build之后还是会报错
[yolov5_tracker_node-1] import torch [yolov5_tracker_node-1] ModuleNotFoundError: No module named 'torch' [ERROR] [yolov5_tracker_node-1]: process has died [pid 24618, exit code 1, cmd
from launch import LaunchDescription from launch_ros.actions import Node from launch_ros.substitutions import FindPackageShare from launch.substitutions import PathJoinSubstitution def generate_launch_description(): weights_path = PathJoinSubstitution([ FindPackageShare("yolov5_vehicle_detector"), "weights", "yolov5s.pt" ]) return LaunchDescription([ Node( package="yolov5_vehicle_detector", executable="yolov5_tracker_node", name="yolov5_tracker_node", output="screen", env={'DISPLAY': ':0'}, parameters=[{ "weights": weights_path, "device": "cpu", "imgsz": [640, 640], "conf_thre": 0.5, "iou_thre": 0.5, "camera_source": 0, "visualize": True, }], ) ])
from pathlib import Path from glob import glob from setuptools import setup, find_packages package_name = "yolov5_vehicle_detector" weight_file = Path("src") / "yolov5_vehicle_detector" / "weights" / "yolov5s.pt" data_files = [ ("share/ament_index/resource_index/packages", [f"resource/{package_name}"]), (f"share/{package_name}", ["package.xml"]), (f"share/{package_name}/launch", glob("launch/*.launch.py")), (f"share/{package_name}/weights", [str(weight_file)]), ] package_data = {package_name: ["weights/yolov5s.pt"]} setup( name=package_name, version="0.0.0", packages=find_packages(where='src', include=[package_name, f"{package_name}.*"]), package_dir={'': 'src'}, package_data=package_data, data_files=data_files, install_requires=[ "setuptools", "numpy", "pandas", "Pillow", ], zip_safe=True, maintainer="", maintainer_email="", description="ROS2 Node for YOLOv5 Vehicle Detection and Tracking", license="Apache License 2.0", entry_points={ 'console_scripts': [ 'yolov5_tracker_node = yolov5_vehicle_detector.yolov5_tracker_node:main', ], }, )
我构建的命令是
rm -rf build/ install/ log/ colcon build --packages-select yolov5_vehicle_detector_msgs yolov5_vehicle_detector --symlink-install source install/setup.bash ros2 launch yolov5_vehicle_detector tracking.launch.py
-
还是在代码中添加
sys.path.append("/home/sss/anaconda3/envs/yolov5-sort/lib/python3.8/site-packages/")
然后我重新安装build之后生成的包
cd ~/ros2_ws/src/yolov5_vehicle_detector pip3 install .
就会提示我
[yolov5_tracker_node-1] import rclpy [yolov5_tracker_node-1] ModuleNotFoundError: No module named 'rclpy' [ERROR] [yolov5_tracker_node-1]: process has died [pid 8048, exit code 1, cmd '/home/errorsteved/ros2_ws/src/yolov5_vehicle_detector/install/yolov5_vehicle_detector/lib/yolov5_vehicle_detector/yolov5_tracker_node --ros-args -r __node:=yolov5_tracker_node --params-file /tmp/launch_params_zffexw5t'].
-
@1041205456 source /opt/ros/foxy/stup.bash 了吗