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

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