首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将系统包(即ro间谍、std_msgs、geoemtry_msgs)导入到使用python2的虚拟环境中?

如何将系统包(即ro间谍、std_msgs、geoemtry_msgs)导入到使用python2的虚拟环境中?
EN

Stack Overflow用户
提问于 2021-08-22 19:40:12
回答 1查看 1K关注 0票数 0

以前,我使用以下方法安装了PX4固件、ROS和Gazebo:

代码语言:javascript
复制
wget https://raw.githubusercontent.com/PX4/Devguide/master/build_scripts/ubuntu_sim_ros_melodic.sh
bash ubuntu_sim_ros_melodic.sh

我相信这两行安装了ROS和诸如此类的所有软件包,我只需要安装python2.7,因为我运行的是ros。但是,我试图安装anaconda,然后尝试导入所需的包(ro间谍、std_msgs、geometry_msgs <- -找不到geometry_msgs),但它运行在Python3.8上。我最终决定卸载anaconda,因为我一直听说在conda环境中很难使用ros。由于我的机器上已经有python2.7,所以我只是继续创建一个python虚拟环境,并且有很多关于如何这样做的教程。

首先,我用catkin创建了一个ros工作区。

代码语言:javascript
复制
mkdir -p drone/src
catkin_make
cd src
catkin_create_pkgs bigdrone std_msgs geometry_msgs rospy

我打开Professional,并设置了来自python/venv/bin/python的解释器。现在我试图再次导入我的包,但是所有的包都丢失了。我想这可能是因为它找不到包,因为它是一个虚拟环境,所以我切换到了/usr/bin/python2.7中的python。我所需要的软件包仍然不见了,但我确实可以访问一些像rosdep之类的东西。此外,当我在终端上运行时:

代码语言:javascript
复制
python
>>> import rospy
>>> import std_msgs
>>> import geometry_msgs

因为某种原因,一切似乎都很顺利。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-22 22:20:31

它在Pycharm中找不到这些包,但可以从您的终端中找到这些包,原因是您已经在您的终端中运行了source /opt/ros/melodic/setup.bash。此文件设置环境变量,并将更新PYHTONPATH以包括所提到的ros特定模块。您可能可以通过从具有/opt/源代码的文件的终端启动Pycharm来使其工作。

尽管如此,更完整的解决方案是将ros发行包添加到您的虚拟环境中。您可以找到添加外部包here的步骤,要添加的路径是/opt/ros/melodic/lib/python2.7/distpackages。之后,您可以转到File > Settings > Project:> Project解释器。在那里,您可以从列表中指定ROS Python解释器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68884601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档