Pycharm 通过ssh远程编写Ubuntu ros,解决pycharm无法识别rospy等包的问题

我在win10上用vmware安装了Ubuntu虚拟机,配合Ubuntu版Pycharm来写ros。但是Ubuntu图形界面总是很卡,于是干脆用win10下的IDE通过ssh来写代码,Ubuntu的图形界面只在必要时刻用一下即可。

解决问题:

  • win10下pycharm通过ssh连接Ubuntu,对服务器(ubuntu)的代码进行编辑
  • win10下调用服务器的python解释器,在本地编译python程序
  • 解决pycharm无法识别rospy等ros包的问题

一、win10下pycharm通过ssh连接Ubuntu,对服务器(ubuntu)的代码进行编辑

通过ssh连接服务器后,把需要编辑的文件\目录同步到本地。本地对文件编辑后,会自动上传到服务器。相当于直接编辑服务器文件。

1、确保Ubuntu下搭建有ssh server,可以用ps -e | grep ssh检查是否有安装,如果没有自行安装。同时确保Ubuntu为专业版,社区版无此功能。

2、新建一个部署(可以先随便建一个python项目,然后做设置)。

新建SFTP项。

填写连接内容:填写ip、登录账号、密码(可以save password),然后检查连接确保可以访问,接着填写服务器上打算访问的目录的最底层。

填写mapping(磁盘映射):要编写服务器的上的文件,要先将其下载到本地,编辑后再推到服务器上。local path对应本地打算存放服务器内容的目录,deployment path对应需要映射的文件夹(直接选择最底层即可)。

apply等一通确认。(注意要在左上角对号那里点击,确保当前设置为粗体,表示设置当前服务器为默认服务器,否则无法自动同步)。

3、点击browse remote即可看到远程文件。

于是server上的文件就出来了。

打开Remote Host,选择mapping中设置的远程文件或其子文件,右键即可下载到本地并建立对应目录关系。(在mapping中设置的deployment path外的文件不可被下载到本地去编辑后自动更新,如果要编辑这些文件,打开后需要手动upload,所以建议mapping中deployment path选的尽量靠近底层,把所有文件都囊括在内)。

4、大功告成。我们可以在本地编辑文件。编辑文件会自动上传,编辑文件夹需要手动upload。

选中本地文件,右键即可upload、download、sync。

 

二、win10下调用服务器的python解释器,在本地编译python程序

这时如果编译某个程序,调用的是本地win10上的python。那么如果想用服务器上的环境,需要设置编译器。

相当于把本地写好的程序推上去,在服务器运行,然后再把结果拉下来。

1、设置中新加解释器。

2、选择ssh并且用之前配好的设置,选择move,next。

3、填写解释器地址,选择sudo,否则拉不下来配置。

4、大功告成。现在本地写代码就可以用server的解释器跑了。

实例:我们在本地新建一个文件叫test.py,点击运行时会自动调用远程解释器运行。

 

三、解决pycharm无法识别rospy等ros包的问题

如果需要写ros,在经过之前的配置后,会发现import rospy或者import自定义srv出错,同时这些包的代码提示也没有,说明pycharm没有扫描到这些文件。

我们需要手动设置python解释器的扫描路径来使pycharm识别到它们。

1、在Ubuntu终端source相关目录。ros安装时的相关包只有被source之后才能访问。

source /opt/ros/melodic/setup.bash
source ~/catkin_ws/devel/setup.bash (此目录根据自己的workspace自行更换)

第一行为同步ros安装目录下的设置,第二行为同步自己工作目录下的设置。

2、为pycharm解释器增加扫描目录。

选择show path。

添加ros安装目录下的python库:/opt/ros/melodic/lib/python2.7/dist-packages

添加自己workspace下编译的python库:/工作目录(我的是catkin_ws)/devel/lib/python2.7/dist-packages

然后一路点击确定,等待pycharm下方的进度条结束后,重启pycharm,再等待pycharm下方的扫描项都结束。

3、大功告成。之前找不到库、找不到自己编写的包、没有代码提示等问题统统解决。

 

总之,完成了以下工作:

① win10下pycharm通过ssh连接Ubuntu,对服务器(ubuntu)的代码进行编辑。② win10下调用服务器的python解释器,在本地编译python程序。③ 解决pycharm无法识别rospy等ros包的问题

 

注意事项:

1、Tool | Deployment 下的各项同步功能,只有在选中本地文件时才能使用。如果选择服务器文件,会变成灰色

2、Mapping中deployment path外的文件不可被下载到本地,不能进行自动的同步。如有需要,可以重设deployment path,设置得大一些,或者点击下面的add new mapping新增一个映射

3、修改代码并make后,切记source工作目录下的setup.bash

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章