ros和conda分别具备自己的python解释器,很容易造成混乱,我用conda的解释器运行后出现了这个问题:
ModuleNotFoundError: No module named 'rclpy._rclpy_pybind11'
The C extension '/opt/ros/humble/lib/python3.10/site-packages/_rclpy_pybind11.cpython-38-x86_64-linux-gnu.so' isn't present on the system. Please refer to 'https://docs.ros.org/en/humble/Guides/Installation-Troubleshooting.html#import-failing-without-library-present-on-the-system' for possible solutions
我的解决办法是用ros的解释器**/usr/bin/python**,conda用sys的方式引入,以下是代码:
python
import rclpy
from rclpy.node import Node
import sys
sys.path.append('/home/sss/anaconda3/envs/yolov/lib/python3.10/site-packages')
import torch
class MinimalNode(Node):
def __init__(self):
super().__init__('dxpnode')
self.get_logger().info('Hello ROS 2 from Python node!')
def main(args=None):
rclpy.init(args=args)
print(torch.cuda.is_available())
print(torch.cuda.device_count())
node = MinimalNode()
#rclpy.spin(node)
node.destroy_node()
rclpy.shutdown()
if __name__ == '__main__':
main()