由于ros中默认的python版本为2.7所以造成在调用python3.7中包的时候出现不能识别的现象,初步判断是ros中自动搜索的路径为python2.7的
默认安装路径,如果想要用python3.7和ros结合应进行以下几步的设置:
第一、
程序第一行加入 #!/usr/bin/python3.7
第二、python3.7安装ros相关包
pip3.7 install catkin-tools
pip3.7 install rospkg
由于我用的python版本为3.7,所以我用相应的pip去安装相关包
第三、在程序中加入去除2.7的路径程序就会自动搜索python3.7中包的路径
以下示例:就是用的python3.7中安装的包
#!/usr/bin/python3.7
import rospy
from std_msgs.msg import String
import sys
sys.path.remove('/opt/ros/kinetic/lib/python2.7/dist-packages')
import cv2
def talker():
pub = rospy.Publisher('chatter', String, queue_size=10)
rospy.init_node('talker', anonymous=True)
rate = rospy.Rate(10) # 10hz
while not rospy.is_shutdown():
src = cv2.imread('/home/ubuntu/catkin_ws/src/py_booknum/src/data/1.jpg', 1)
if src is None:
print("图像为空")
else:
cv2.imshow('1', src)
cv2.waitKey(0)
rate.sleep()
if __name__ == '__main__':
try:
talker()
except rospy.ROSInterruptException:
pass
至此就完成了python3.7和ros兼容的问题了。