You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在使用Python2的虚拟环境中导入rospy、std_msgs等ROS系统包

问题核心原因

终端能正常导入ROS包是因为你打开终端时默认加载了ROS的环境变量,Python的sys.path包含了ROS相关包的存储路径;而虚拟环境、Pycharm默认没有加载对应环境变量,也没有继承系统的Python包路径,导致找不到ROS依赖。


解决步骤

1. 重建带系统包继承权限的Python虚拟环境

你之前创建的虚拟环境默认隔离了系统级Python包,需要重新创建时加入继承参数:

# 进入你的工作空间目录,删除旧的虚拟环境
cd ~/drone
rm -rf venv
# 新建带系统包继承的Python2.7虚拟环境
python2.7 -m venv --system-site-packages venv

2. 配置虚拟环境激活时自动加载ROS环境变量

修改虚拟环境的激活脚本,避免每次手动source配置:
打开venv/bin/activate文件,在文件末尾加入以下两行(注意替换为你自己的工作空间实际路径):

source /opt/ros/melodic/setup.bash
source ~/drone/devel/setup.bash

配置完成后执行source venv/bin/activate激活虚拟环境,此时在虚拟环境中执行Python导入操作即可正常识别ROS包。

3. Pycharm适配配置

Pycharm默认不会继承系统终端的环境变量,可二选一配置:

  • 方法一(更简单):每次从已经激活虚拟环境的终端中启动Pycharm,Pycharm会自动继承终端的所有环境变量:
    cd ~/drone
    source venv/bin/activate
    # 替换为你自己的Pycharm安装路径下的启动脚本路径
    sh ~/pycharm-professional/bin/pycharm.sh
    
  • 方法二(固定配置):在Pycharm中手动添加ROS包路径:
    • 打开文件>设置>项目:drone>Python解释器,点击解释器右侧的齿轮图标,选择显示所有
    • 选中你配置的drone/venv/bin/python解释器,点击右侧的显示解释器路径图标
    • 点击加号添加两个路径:/opt/ros/melodic/lib/python2.7/dist-packages、/home/你的用户名/drone/devel/lib/python2.7/dist-packages
    • 保存配置后重启Pycharm即可识别ROS包

内容的提问来源于stack exchange,提问作者NotALolicon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 20:36:00