ros中python包相互import不成功问题
- 问题
- 解决办法
问题
在ros工程中,运行python文件难以直接import自己写的py文件,相互之间无法import,但是在python3虚拟环境python *.py文件就可以正常运行!
注意这里还有个问题,我们的这个auboi5_moveitServer.py明明是在下面的路径下,为什么rosrun运行会跑到aubo_ws/devel/lib/cxh这下面去呢
这是因为你在cxh文件夹下的CMakeList.txt文件添加了catkin_install_python(PROGRAMS
scripts/auboi5_moveitServer.py
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)这样式的修改,所以在aubo_ws下执行编译就会把cxh下的文件复制到devel/lib文件夹里面导致Python导的包重名了!!!
解决办法
如果你的CMakeList.txt文件添加了像下面这样的catkin_install_python(PROGRAMS scripts/HelloWorld.py
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)这样式的修改,请立即全部删除或者注释掉!!!
因为不管用!!!
然后重新编译,编译前把之前编译出来的文件都删掉,如图红色框里就是之前编译出来的文件:
删掉后,执行命令
catkin_make
source devel/setup.bash
然后在需要创建成ROS节点的.py文件,给予权限即可在source后,通过rosrun运行python文件
权限命令
chmod +x *.py
如图在python虚拟环境grcnngrasp下,执行命令后,变绿就是命令生效了:
在终端里,先source一下再rosrun命令
source devel/setup.bash
rosrun cxh run_mono_grasp_real.py