第4章 树莓派远程开发Python程序(Pycharm)

   开发软件一般需要一个程序运行环境和一个集成开发环境(Integrated Development Environment,IDE)。Raspbian系统默认已经提供了Python 2和Python 3的运行环境,选择一款优秀的IDE,并采用合适的开发方法将有助于提高开发效率。本章将介绍一种Windows下远程开发树莓派程序的方法,主要内容如下:

  • 介绍在本地和远程开发树莓派程序的两种思路。
  • 介绍在Windows上使用Pycharm远程开发树莓派程序的方法。

4.1 两种开发思路

  • 本地开发
       本地开发是指在树莓派上安装和使用IDE(或文本编辑器)进行程序编写、调试和运行。如果树莓派已经连接上显示器、鼠标、键盘等I/O设备,那么就可以和使用普通PC一样进行程序开发。如果没有连接显示器等I/O设备,可以使用SSH或VNC远程登录到树莓派编写程序。对于第二种方法,虽然是远程登录到树莓派,但由于开发环境和代码等都保存在树莓派上,所以我们仍然可以认为是在树莓派本地进行开发。
       本地开发的优势是简单,不需要太多的配置就可以进行程序开发。其劣势也是非常明显的,最主要的问题是树莓派本身的性能相对有限,而现代IDE对性能的要求较高,直接在树莓派上进行程序开发的用户体验不是很好。
  • 远程开发
       远程开发是指在个人计算机上编写代码,然后将代码上传到树莓派进行调试和运行,整个调试和运行的操作都是在个人计算机上完成的,基本无需在树莓派上进行操作。很明显,远程开发方式发挥了普通个人计算的优势,减轻了树莓派的负担,为我们提供了更好的开发体验。
       远程开发是我们推荐的开发方式,以下将介绍一种远程开发树莓派程序的方法。

4.2 PyCharm远程开发树莓派程序

4.2.1 PyCharm简介

   PyCharm是JetBrains开发的一款功能强大的Python IDE,提供了调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制等功能。PyCharm有专业版和社区版两个版本,但只有专业版才具备远程Python解释器和调试器功能,要实现远程开发树莓派程序需使用专业版的PyCharm

4.2.2 配置远程开发环境

   步骤 1: 将树莓派接入网络(需要和个人计算机在同一个局域网),并配置好SSH,具体参考第3章

   步骤 2: 在个人计算机上安装Python3。从Python官网https://www.python.org/downloads/下载合适的Python版本并安装,我们这里安装的是Pyhton 3.7.2(64-bit),对应的安装文件为python-3.7.2-amd64.exe。运行安装程序,按图 4.1所示选择,把Python加到Windows的环境变量PATH上去。如果采用默认安装,则点击“Install Now”,如果需要自定义安装(如修改安装路径等),则点击“Customize installation”,然后一路“Next”即可。

图 4.1 安装Python

   安装完成后,在“命令提示符”输入以下命令,如果安装成功,则显示“Python 3.7.2”。

python --version  

   步骤 3: 在个人计算机上安装Pycharm。由于需要使用到Pycharm的远程Python解释器和调试器功能,因此我们需要安装专业版的Pycharm,官网下载地址:http://www.jetbrains.com/pycharm/download/。Pycharm的安装比较简单,运行安装程序后,采用默认安装一路“Next”即可,安装过程大概需要几分钟,请耐心等待。
   Pycharm专业版是收费的,安装完成后需要激活,具体的解决的办法,可以私信我,或上网查找。

   步骤 4: 运行Pycharm新建一个“Pure Python”项目,并按图4.2设置。其中,“Location”为新建项目在个人计算机上的存放位置。

图 4.2 创建项目

   步骤 5: 新建基于SSH连接的远程Python解释器。如图4.2所示,点击“...”,然后选择“SSH Inetrpreter”,并按图4.3一步一步设置。其中,“Host”为树莓派的IP地址;“UserName”为登录树莓派的用户名;“InterPreter”为树莓派上的Python解释器路径,这里使用的是Python 3的解释器,如果想使用Python 2,则把路径改为“/usr/bin/python”。由于Raspbain系统是大小写敏感的,在填写配置信息的时候应注意大小写。
   成功新建远程Python解释器后,如图4.4所示,PyCharm会向树莓派上传一些文件,一般需要几分钟的时间,请耐心等待。



图 4.3 新建基于SSH连接的远程Python解释器

图 4.4 完成远程Python解释器创建

   步骤 6: 修改项目在树莓派上的存放目录(可选)并完成项目创建。新建远程Python解释器后,PyCharm会自动设置项目在树莓派上的存放目录,但为了管理方便,建议修改一下。如图4.5所示,按照您的习惯对“Remote project location”进行修改,然后点击“Create”完成项目创建,进入PyCharm的开发界面,如图4.6所示。

图 4.5 修改项目在树莓派上的存放目录

图 4.6 项目开发界面

   步骤 7: 进一步配置项目远程Python解释器。进入“File->Settings->Project: myApp(项目名称)->Project Interpreter”,如图4.7所示,点击“Project Interpreter”选项后面的小齿轮,选择“Show All...”,进入“Project Interpreters”。

图 4.7 进入项目解析器配置管理

   如图4.8所示,找到刚刚新建的远程Python解释器配置,然后点击小铅笔图标进入“Configure Remote Python Interpreter”界面。

图 4.8 进入远程解析器配置

   按照图4.9设置SSH Credentials,“Host”、“User Name”、“Authentication type”、“Password”、“Python Interpreter path”等配置项的值与之前步骤的值一样,而“PyCharm helper path”采用默认值即可。

图 4.9 配置远程解析器

   如果设置成功,如图4.10所示,在“Project Interpter”对话框的列表中将显示出树莓派上已安装的Python包的信息,点击列表右边的眼睛图标可以进行刷新。如果在列表下面出来图4.10中的提示,则点击“Install packaging tools”安装packaging tools即可。

图 4.10 完成远程解析器配置

   步骤 8(可选): 配置文件上传机制。PyCharm能够自动的把代码文件等上传到树莓派,默认是当文件文件发生改变时自动上传。这种默认机制上传文件的次数较多,效率不高且会影响MicroSD卡的寿命,因此建议修改为保存文件后上传文件,以减少文件上传次数。如图4.11所示,在“File->Settings”中找到相应的配置项并修改。

图 4.11 配置文件上传机制

   到此为止,我们就完成了PyCharm远程Python开发环境的搭建,这样就可以在个人计算机上使用PyCharm编写代码,然后通过SSH调用树莓派上Python解释器进行调试和运行程序。

4.2.3 编写第一个程序

   步骤 1: 新建一个Python文件,输入以下代码并保存,最终结果如图4.12所示,在下方的“File Transfer”窗口中可以看到文件已经被自动的上传到树莓派。

#!/usr/bin/python3

if __name__ == '__main__':
    print("Hello, World!")

图 4.12 编写程序

   步骤 2: 运行程序。如图4.13所示,第一次运行程序可以点击绿色三角形选择“Run 'main'”或“Debug 'main'”,运行的结果可以在下面的“Run”窗口中看到。之后,也可以通过点击右上角工具栏按钮运行或调试程序。

图 4.13 运行程序

4.2.4 root权限问题

   很多的树莓派Python程序(例如:GPIO、蓝牙等)需要root权限才能运行,而前面配置用于远程开发树莓派程序的用户pi是不具备root权限,远程运行程序的时候会发生错误,以下提供一种解决这个问题的方法。

   步骤 1: 新建脚本文件。在树莓派上新建一个脚本文件,命名为py_sudo.sh,文件的内容如下:

#!/bin/bash
sudo /usr/bin/python3 "$@"

提示:

  • 这里我们把脚本文件py_sudo.sh存放在“/home/pi/”目录下面。
  • 可以使用XShell登录树莓派后,运行“nano”或“vi/vim”等文本编辑器创建该脚本文件,也可以在个人计算机上创建该脚本文件后上传到树莓派上。

   其中,python3表示使用Python 3,如果想使用Python 2,修改为python即可。

   步骤 2: 让脚本文件具有可执行权限。使用XShell登录树莓派,进入脚本文件所在目录,输入以下命令:

chmod +x py_sudo.sh

   步骤 3: 修改远程Python解释器。参考4.2.2节的步骤7,进入“Configure Remote Python Interpreter”,按图4.14所示修改远程Python解释器路径。

图 4.14 修改远程解释器路径

   完成配置后就可以远程调试运行需要root权限的Python程序,而编写程序的方法不变。

4.3 本章小结

   本章首先介绍了本地开发和远程开发树莓派程序的两种思路,然后详细介绍在Windows上使用PyCharm专业版远程开发运行树莓派程序的方法。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容