栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python3 与python2混用操作

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python3 与python2混用操作

问题:在使用osqp库编写MPC程序后,小车坐标需要tf转换,而tf库仅能在python2环境下使用,造成了python环境冲突

解决思路:比较安全的思路是,创建一个新的工作空间,配置为python3的环境后,source一下这个工作空间,即可运行双环境。

1.创建工作空间py3_ws,克隆源码geometry和geometry2到src中

这里有一个已经创建好的工作空间:

链接:py3_ws
提取码:pyws

2.安装python3依赖

sudo apt install python3-catkin-pkg-modules python3-rospkg-modules python3-empy ipython3

3.numpy安装

pip3 install numpy

4.删除工作空间中的CMakeLists.txt

因为是在我的Linux系统上弄得,所以CMakeLists.txt里面的路径会与你的系统路径冲突,所以删除,重新进行编译

cd py3_ws/src

sudo rm CMakeLists.txt

 5.重新编译

如果python3的版本是3.5或者其他的,首先要安装其他版本的python,然后将下面的3.6改为自己的python版本。

catkin_make --cmake-args -DPYTHON_EXECUTABLE=/usr/bin/python3 -DPYTHON_INCLUDE_DIR=/usr/include/python3.6m -DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.6m.so

 6.source工作空间

source py3_ws/devel/setup.bash

 每次需要进行双版本混用的时候都要source一下这个工作空间,如果嫌麻烦,可以把这个命令加入到.bashrc文件中。

sudo gedit ~/.bashrc

 在底部加入完整路径即可

source /home/zhz/gzrobot_ws/devel/setup.bash  # 原有工作空间
source /home/zhz/py3_ws/devel/setup.bash  # 新建立的工作空间
测试:

我们系统中有原有的工作空间(例:gzrobot_ws),还有一个新创建的工作空间py3_ws,我们只用在前者中进行操作就行了,在写python文件时,解释器选择python3。测试程序如下:

#!/usr/bin/env python3
# -*- coding=utf-8 -*-

import osqp
import rospy
import tf
if __name__ == "__main__":
	rospy.init_node('test', anonymous=True)	
	while not rospy.is_shutdown():
		rate = rospy.Rate(1)
		br = tf.TransformBroadcaster()
		br.sendTransform((0.0, 0.0, 1.0), 
		     tf.transformations.quaternion_from_euler(0, 0, 3.1415926/2), 
		     rospy.Time.now(),'camera','map')
		rate.sleep()

完成的功能是调用osqp库,建立tf坐标转换,在rviz中观察摄像头与地图间的关系

跑这个程序就好了,结果如下:结果tf转换结果

可以运行python2的tf,也可以运行python3的osqp

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/744255.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号