ROS2 Python导入三方库及自定义python程序
文章目录
- 前言
- 正文
- 导入三方库文件
- 导入自定义python程序
前言
本文主要讲解ROS2建立pyhon包时如何导入三方库文件(.so),及自定义的python程序。
正文
导入三方库文件
此处以Jaka驱动为例:
# jaka_common_init.pyimport os
import sys
import ctypesimport platformclass JakaCommonInit:
# 获取当前系统名称__system = platform.system()if __system == "Linux":print("当前系统为Linux")def init_env():base_dir = os.path.abspath('/opt/ros/humble/local/lib/python3.10/dist-packages')# 加载Linux 动态库 libjakaAPI.soprint("base_dir :", base_dir)env_path = os.path.join(base_dir, r'libjakaAPI.so')print("env_path :", env_path)ctypes.CDLL(env_path)else:print("未知系统")
程序调用如下:
···
# 导入初始化类
from .jaka_common_init import JakaCommonInit# 调用cdll
JakaCommonInit.init_env()
import jkrc
···
Jaka的驱动文件有两个,放置在/opt/ros/humble/local/lib/python3.10/dist-packages
目录下
导入自定义python程序
关键区别在于是否有"."
# 通常我们在导入python程序时如下
from scipy.spatial.transform import Rotation# 在导入自定义python文件时如下
from .jaka_common_init import JakaCommonInit# 去掉点会报错
ModuleNotFoundError: No module named 'jaka_common_init'