PyCharm 是一款弱小好用的 IDE 工具,简直是 Python 开发的首选,明天分享一篇具体有料的教程,一起来学习吧!
本文假如读者相熟 Python 开发,且计算机中已装置某个版本的 Python。该教程将应用 Python 3.6 版本,屏幕截图和 demo 均来自 macOS 零碎。
因为 PyCharm 可在所有支流平台上运行,读者在其余零碎中会看到稍微不同的 UI 元素,可能须要调整某些命令。
1. PyCharm 的装置
本文将应用 PyCharm Community Edition 2019.1 版本,该版本收费且可在所有支流平台上应用。只有最初一部分「PyCharm Professional 性能」应用的是 PyCharm Professional Edition 2019.1 版本。举荐应用 JetBrains Toolbox App 装置 PyCharm。
应用该 App,你能够装置不同的 JetBrains 产品或者同一产品的不同版本,并在必要的状况下更新、回滚和轻松删除任意工具。你还能够在失当的 IDE 及版本中疾速关上任意我的项目。
Toolbox App 装置指南,参见 JetBrains 官网文档:https://www.jetbrains.com/hel…。该 App 会依据你的操作系统提供适合的装置阐明。
如果它无奈无奈精确识别系统,你能够在右上角的下拉列表中找到适合的零碎。
装置胜利后,启动该 app 并承受用户协定。在 Tools 选项下,你能够看到一个可用产品列表。从中找到 PyCharm Community,并点击 Install。
好啦,当初你的机器上曾经装置 PyCharm 了。如果不想应用 Toolbox app,你能够独自装置 PyCharm。启动 PyCharm,你将看到导入设置弹窗。PyCharm 会自动检测出这是首次装置,并为你抉择「Do not import settings」选项。
点击 OK,之后 PyCharm 会让你抉择键盘映射(keymap scheme)。保留默认设置,点击右下角的「Next: UI Themes」:
PyCharm 将询问抉择深色模式 Darcula 还是浅色模式。你能够抉择本人喜爱的模式,并点击「Next: Launcher Script」:
本教程将应用深色模式 Darcula。在下一个页面上,间接保留默认设置,并点击「Next: Featured plugins」,这时 PyCharm 将展现可用插件列表。点击「Start using PyCharm」,当初你能够写代码了!
2. 编写代码
在 PyCharm 中,你能够在「我的项目」中执行任意操作。因而,首先你须要创立一个我的项目。装置和关上 PyCharm 后,你会看到欢送页面。点击「Create New Project」,呈现「New Project」弹窗:
指定我的项目地位,关上 Project Interpreter 列表,抉择创立新的我的项目解释器或者应用已有的解释器。抉择「New environment using」,关上其右方的下拉列表,抉择 Virtualenv、Pipenv 或 Conda。这些工具能够为不同我的项目独自创立 Python 环境,从而别离保留不同我的项目所需的依赖项。
你能够抉择其中任意一个,本教程应用的是 Virtualenv。抉择后,指定环境地位,从 Python 解释器列表中抉择要装置在零碎中的 base interpreter。通常,放弃默认设置即可。
上面有两个可选框:在新环境中继承全局包环境、令以后环境能够用其它所有我的项目,两个都不要选。点击右下角的「Create」,创立新我的项目:
屏幕上呈现「Tip of the Day」弹窗,在每次启动时 PyCharm 通过该弹窗提供 trick。关掉该弹窗。当初咱们能够开始新的 Python 程序了。
如果你应用的是 Mac 零碎,应用 Cmd+N 键;如果你应用的是 Windows 或 Linux 零碎,应用 Alt+Ins 键。而后抉择 Python File。你也能够在菜单中选择 File → New。将新文件命名为 guess_game.py 并点击 OK。你将看到如下 PyCharm 窗口:
至于测试代码,咱们来疾速写一个简略的猜谜游戏,即程序抉择一个数字让用户来猜,在每一次猜想时,程序将通知用户他猜的数字比神秘数字大还是小,用户猜中数字时游戏完结。以下是该游戏的代码:
间接键入上述代码,而不是复制粘贴。你会看到如下画面:
如上图所示,PyCharm 提供 Intelligent Coding Assistance 性能,能够执行代码补全、代码查看、谬误高亮显示和疾速修复倡议。比方键入 main 并点击 tab 键,PyCharm 会主动补全整个 main 从句。
此外,如果你在条件句前遗记键入 if,在该句子最初削减.if 并点击 Tab 键,PyCharm 将修复该 if 条件句。该用法同样实用于 True.while。这即是 PyCharm 的 Postfix Completion 性能,它能够帮忙用户缩小退格键应用次数。
3. 如何运行代码
当初你曾经编码实现该游戏,能够运行了。该游戏程序有三种运行形式:
在 Mac 零碎中应用快捷键 Ctrl+Shift+R,在 Windows 或 Linux 零碎中,应用快捷键 Ctrl+Shift+F10。右键单击背景,从菜单中选择「Run『guess_game』」。
因为该程序具备 main__ 从句,你能够点击__main 从句左侧的绿色小箭头,抉择「Run『guess_game』」。应用以上任一形式运行该程序,窗口底部会呈现终端面板(Terminal pane),显示你的代码输入后果:你能够玩一下这个游戏,看看本人是否猜中数字。(业余倡议:从 50 开始猜。)
4. 进行代码的调试
找到神秘数字了吗?如果找到了,你可能会看到一些奇怪的货色:程序没有打印出恭喜信息和显示退出按钮,而是从新开始了。这就是 bug 所在。要想发现程序从新开始的起因,你须要 debug。首先,点击第 8 行代码左侧的空白区域,设置断点:
断点即程序运行到这一行时会主动进行,你能够摸索断点处之后的代码有什么谬误。接下来,从以下三种形式中抉择一种开始 debug:
1. 在 Mac 零碎中应用 Ctrl+Shift+D 键,在 Windows 或 Linux 零碎中应用 Shift+Alt+F9 键。
2. 右键单击背景,抉择「Debug『guess_game』」。
3. 点击 main 从句左侧的绿色小箭头,抉择「Debug『guess_game』」。之后,你将看到底部呈现 Debug 窗口:
依照下列步骤执行程序 debug:
1. 留神以后行被蓝色高亮显示。
2.Debug 窗口显示 random_int 及其值。记录该数字。(上图中该数字为 85。)
3. 点击 F8 执行以后代码行,并执行到下一行代码。如有必要,你也能够应用 F7 跳转到以后行内的函数。随着你继续执行语句,变量的变动将主动出现在 Debugger 窗口。
4. 留神 Debugger 标签右侧有一个 Console 标签。Console 标签和 Debugger 标签互相独立。你能够在 Console 中与程序进行交互,在 Debugger 中执行 debug 动作。
5. 转向 Console 标签,进入猜想过程。
6. 键入左侧 Debugger 标签中显示的数字,点击 Enter 键。
7. 转回 Debugger 标签。
8. 再次点击 F8,计算 if 语句。留神当初你在第 14 行。为什么不是第 11 行呢?因为第 10 行的 if 语句被计算为 False。那么为什么当你键入数字后它算进去为 False 了呢?
9. 认真看第 10 行,留神咱们在比照 user_guess 和一个谬误的项。咱们应该比照用户猜想的数字和 random_int,但此处咱们比照的是 randint(从 random 包导入的函数)。
10. 将 randint 更改为 random_int,依照同样的步骤从新开始 debug。你会发现,这一次达到的是第 11 行,第 10 行算进去为 True:祝贺你,bug 被修复了!
5. 进行代码测试
不经单元测试的利用都不牢靠。PyCharm 能够帮忙你疾速舒服地写单元测试并运行。默认状况下,unittest 被用作测试运行器,而 PyCharm 还反对其余测试框架,如 pytest、nose、doctest、tox 和 trial。例如,你能够依照以下步骤为项目选择 pytest 测试运行器:
关上 Settings/Preferences → Tools → Python Integrated Tools 设置对话框。
•在默认测试运行器字段中抉择 pytest。
•点击 OK 保留该设置。
•本教程的示例将应用默认测试运行器 unittest。
在同一个我的项目中,创立文件 calculator.py,并将以下 Calculator 类放入该文件:
PyCharm 使得为已有代码创立测试变得轻而易举。关上 calculator.py 文件,执行以下步骤中的任意一个:在 Mac 零碎中应用 Shift+Cmd+T 键,在 Windows 或 Linux 零碎中应用 Ctrl+Shift+T。右键单击该类的背景,抉择「Go To and Test」。在主菜单中吗,抉择 Navigate → Test。抉择「Create New Test…」,失去以下窗口:
Target directory、Test file name 和 Test class name 这三项均保留默认设置。选中上图中两种须要测试的办法并点击 OK。
好了!PyCharm 主动创立文件 test_calculator.py,并在其中创立了以下 stub test:
应用以下办法中的任意一个运行测试:
•在 Mac 零碎中应用 Ctrl+R 键,在 Windows 或 Linux 零碎中应用 Shift+F10 键。
•右键单击背景,抉择「Run『Unittests for test_calculator.py』」。
•点击测试类名称左侧的绿色小箭头,抉择「Run『Unittests for test_calculator.py』」。
你将看到底部呈现测试窗口,所有测试均失败:
留神,左侧是测试后果的层次结构,右侧是终端的输入。当初,将代码更改成以下代码,实现 test_add:
从新运行测试,你会看到一个测试通过了,另一个则失败。依照如下操作摸索不同选项,来展现已通过测试和被疏忽测试,依照字母程序对测试进行排序,以及依照时长对测试进行排序:
留神,上图中的 sleep(0.1) 办法的作用是使其中一个测试变慢,以便按时长对测试进行排序。
6. 编辑已有我的项目
单文件我的项目非常适合作为示例,但你通常须要解决较大的我的项目。这部分将介绍如何应用 PyCharm 解决较大我的项目。为了摸索 PyCharm 以我的项目为核心的特色,你将应用 Alcazar web 框架(该框架用于学习目标)。
在本地复制该 repo(地址:https://realpython.com/optins…)。当你在本地已有我的项目时,应用以下办法中的任意一个在 PyCharm 中关上我的项目:
•在主菜单中点击 File → Open。
•在欢送页面点击 Open。之后,在计算机中找到蕴含该项目标文件夹,并关上。如果该我的项目蕴含虚拟环境,PyCharm 将主动应用该虚拟环境,并将它作为我的项目解释器。
如果你须要配置不同的虚拟环境 virtualenv,在 Mac 上关上 Preferences,或在 Windows 或 Linux 零碎中应用 Ctrl+Alt+S 关上 Settings,找到 Project: ProjectName。
关上下拉列表,抉择 Project Interpreter:从下拉列表中抉择 virtualenv。如果没有要抉择的项,则点击下拉列表右方的设置按钮抉择 Add…。其余步骤和创立新我的项目的步骤雷同。
7. 应用搜寻和导航
在大我的项目中,咱们很难记住每个事物的地位,因而疾速导航和搜寻十分重要。PyCharm 能够提供这些性能。接下来,咱们应用上一节中关上的我的项目,实际以下快捷键:
•在以后文件中搜寻代码段:在 Mac 零碎中应用 Cmd+F 键,在 Windows 或 Linux 零碎中应用 Ctrl+F 键。
•在整个我的项目中搜寻代码段:在 Mac 零碎中应用 Cmd+Shift+F 键,在 Windows 或 Linux 零碎中应用 Ctrl+Shift+F 键。
•搜寻类:在 Mac 零碎中应用 Cmd+O 键,在 Windows 或 Linux 零碎中应用 Ctrl+N 键。
•搜寻文件:在 Mac 零碎中应用 Cmd+Shift+O 键,在 Windows 或 Linux 零碎中应用 Ctrl+Shift+N 键。
•如果你不晓得要搜寻的是文件、类还是代码段,则搜寻全副:按两次 Shift 键。导航可应用以下快捷键。
•返回变量的申明:在 Mac 零碎中应用 Cmd 键,在 Windows 或 Linux 零碎中应用 Ctrl 键,而后单击变量。
•寻找类、办法或文件的用法:应用 Alt+F7 键。
•查看近期更改:应用 Shift+Alt+C 键,或者在主菜单中点击 View → Recent Changes。
•查看近期文件:在 Mac 零碎中应用 Cmd+E 键,在 Windows 或 Linux 零碎中应用 Ctrl+E 键,或者在主菜单中点击 View → Recent Files。
•屡次跳转后在导航历史中后退和后退:在 Mac 零碎中应用 Cmd+[/ Cmd+] 键,在 Windows 或 Linux 零碎中应用 Ctrl+Alt+Left / Ctrl+Alt+Right 键。
更多细节,参见官网文档:https://www.jetbrains.com/hel…。
PyCharm 中的版本控制
版本控制系统(如 Git 和 Mercurial)是古代软件开发世界中最重要的工具之一。因而,IDE 必须反对版本控制。PyCharm 在这方面做得很好,它集成了大量风行的版本控制系统,如 Git(和 Github (https://github.com/))、Mercurial、Perforce 和 Subversion。注:以下示例中应用的版本控制系统为 Git。
8. 配置版本控制系统(VCS)
要想实现 VCS 集成,你须要在顶部菜单点击 VCS → VCS Operations Popup…,或者在 Mac 零碎中应用 Ctrl+V 键,在 Windows 或 Linux 零碎中应用 Alt+` 键。抉择 Enable Version Control Integration…,你将看到以下窗口:
从下拉列表中抉择 Git,点击 OK,这样你就为我的项目设置好了 VCS。(留神,如果你关上的已有我的项目曾经具备版本控制系统,PyCharm 将会发现并主动应用该版本控制系统。)这时如果你返回 VCS Operations Popup…,你会发现一个不同的弹窗,它具备选项 git add、git stash、git branch、git commit、git push 等等:
如果你找不到所须要的选项,你能够在顶部菜单中点击 VCS,抉择 Git,在这里你能够创立和查看 pull request。
提交和抵触解决
这是 PyCharm 中 VCS 集成的两大特色,我集体常常应用并且十分喜爱。如果你实现了工作,打算提交,返回 VCS → VCS Operations Popup… → Commit…,或者在 Mac 零碎中应用 Cmd+K 键,在 Windows 或 Linux 零碎中应用 Ctrl+K 键。你将看到如下窗口:
在该窗口中,你能够:
•抉择要提交的文件
•写下提交信息
•在提交前执行各项查看
•查看更改
•点击右下角 Commit 按钮旁边的箭头,抉择 Commit and Push…,从而一次性实现提交和 push。
是不是感觉很神奇很迅速?特地是如果你以前常常通过命令行手动执行这些工作时。团队单干中会呈现合并抵触(merge conflict)。当一个人对你正在解决的文件提交更改时,你们二人更改了同一行导致更改重叠,这时 VCS 无奈决定抉择你的更改还是队友的更改。那么你能够应用以下箭头和符号来解决这个问题:
看起来很奇怪,咱们很难分辨应该删除哪些更改、保留哪些更改。不要怕,PyCharm 来了!它能够用更好、更简洁的办法解决抵触。在顶部菜单中返回 VCS,抉择 Git,而后抉择 Resolve conflicts…。抉择存在抵触的文件,点击 Merge,呈现以下窗口:
在左侧列中,你能够查看本人做的更改。在右侧列中,能够查看队友做的更改。而两头列则显示后果。存在抵触的代码行被高亮显示,你能够在它们旁边看到 X 和 >>/<<。点击箭头示意承受更改,点击 X 则示意回绝更改。解决所有抵触后,点击 Apply 按钮:
在上图中,对于第一个抵触行,作者抉择回绝本人的更改,承受队友的更改。而在第二个抵触行中,作者承受了本人的更改,回绝了队友的更改。
应用 PyCharm 中的 VCS 集成还能够执行很多操作。详情参见 https://www.jetbrains.com/hel…。
9. 应用插件和内部工具
在 PyCharm 中你能够找到开发所需的简直所有性能。如果没找到,那么很可能存在一个插件,向 PyCharm 提供你须要的性能。例如,它们能够:
•增加多语言和多框架反对
•应用快捷键提醒(shortcut hint)、文件监视器(file watcher)等晋升你的生产效率
•利用代码练习,帮忙你学习新的编程语言例如,IdeaVim 插件向 PyCharm 增加 Vim 模仿。
如果你喜爱 Vim,这个插件能够实现不错的联合。Material Theme UI 插件可将 PyCharm 的外观扭转为 Material Design 的外观:
Vue.js 插件使 PyCharm 反对 Vue.js 我的项目。Markdown 插件使得在 IDE 内能够编辑 Markdown 文件,并实时预览渲染后的 HTML。在 Mac 零碎上点击 Preferences → Plugins,在 Windows 或 Linux 零碎中点击 Settings → Plugins,你能够在 Marketplace 标签下找到和装置所有可用插件:
如果依然没找到所需插件,你甚至能够本人开发一个。如果你找不到适合的插件,又不想本人开发,因为 PyPI 上有可用的包,你能够将这个包作为内部工具增加到 PyCharm。以代码分析器 Flake8 为例。选 Terminal app 中键入 pip install flake8,从而在虚拟环境中装置 Flake8。或者也能够应用 PyCharm 集成的 Terminal:
在 Mac 零碎上点击 Preferences → Tools,在 Windows 或 Linux 零碎中点击 Settings → Tools,抉择 External Tools。而后点击底部 (1) 处的 + 按钮。在弹出的窗口中,输出细节并在两个窗口中点击 OK,如下图所示:
上图中,Program (2) 指 Flake8,你能够在虚拟环境文件夹(bin)中找到它。Arguments (3) 示意你想用 Flake8 剖析的文件。Working directory 示意我的项目目录。你能够把这里所有项的绝对路径写死,但这就意味着你无奈在其余我的项目中应用该内部工具,只能在一个我的项目中针对一个文件应用该工具。
因而你须要应用 Macros。它是 name 格局的变量,依据语境而变动。例如,当你编辑 first.py 时,FileName 为 first.py,当你编辑 second.py 时,FileName 为 second.py。你能够查看它们的列表,点击 Insert Macro… 按钮将其中一个插入。
此处你应用了 macros,它们的值会依据你目前解决的我的项目而扭转,Flake8 将持续精确执行其工作。要想应用它,你须要创立文件 example.py,并在其中写入以下代码:
上述代码成心毁坏了 Flake8 的一些规定。右键单击文件背景,抉择 External Tools → Flake8。Flake8 剖析后果将呈现在窗口底部:
为了使成果更好,你能够为其增加快捷键。在 Mac 零碎中抉择 Preferences,在 Windows 或 Linux 零碎中抉择 Settings。而后,点击 Keymap → External Tools → External Tools。双击 Flake8,抉择 Add Keyboard Shortcut,呈现以下窗口:
上图中,快捷键是 Ctrl+Alt+A(本教程应用该快捷键)。你能够在文本框中增加喜爱的快捷键,而后在两个窗口中点击 OK。而后,你就能够用该快捷键,在 Flake8 的帮忙下剖析目前在解决的文件了。
10. PyCharm Professional 性能
PyCharm Professional 是 PyCharm 的付费版本,具备更多开箱即用的性能和集成。这部分将概览其次要性能,以及官网文档链接(其中具体介绍了每一项性能)。记住,以下性能在 PyCharm Community 版本中均不可用。
Django 反对
Django 是最风行和最受青睐的 Python web 框架,PyCharm 对 Django 提供宽泛的反对。要确保对 Django 的反对,须要执行以下步骤:
1. 在 Mac 零碎中关上 Preferences,在 Windows 或 Linux 零碎中关上 Settings。
2. 抉择 Languages and Frameworks。
3. 抉择 Django。
4. 查看复选框 Enable Django support。
5. 利用更改。当初确保了对 Django 的反对,你在 PyCharm 中的 Django 开发之旅将轻松很多。
具体而言在创立我的项目时,你会失去一个专用的 Django 我的项目类型。这示意,当你抉择该类型时,你将领有所有必要文件和设置。这等同于应用 django-admin startproject mysite。你也能够在 PyCharm 内间接运行 manage.py 命令。
目前反对的 Django 模板,包含以下一些:
•语法和谬误高亮显示
•代码补全•导航
•block 名称补全
•自定义标签和过滤器补全
•标签和过滤器的疾速文档
•模板 debug 能力除此之外,咱们还能够在其余 Django 局部(如视图、URL 和模型)中执行代码补全、对 Django ORM 提供代码追踪反对(code insight support)、对 Django 模型提供模型依赖项关系图。
更多细节,参见官网文档:https://www.jetbrains.com/hel…。
11. 数据库反对
古代数据库开发是一个简单的工作,须要多个支持系统和工作流。这也是 JetBrains 开发独立 IDE DataGrip 的起因。DataGrip 是独立于 PyCharm 的产品,二者的利用场景和受权都不雷同。
但侥幸的是,通过 Database tools and SQL 插件(该插件默认开启),PyCharm 能够反对 DataGrip 中的所有个性。在该插件的帮忙下,你能够查问、创立和治理数据库,不论数据库在本地、服务器,还是在云端。该插件反对 MySQL、PostgreSQL、Microsoft SQL Server、SQLite、MariaDB、Oracle、Apache Cassandra 等。对于该插件的更多用途,请查看文档:https://www.jetbrains.com/hel…。
程并发可视化(Thread Concurrency Visualization)Django Channels、asyncio 和近期框架(如 Starlette (https://www.starlette.io/))表明异步 Python 编程正逐步成为趋势。
异步编程具备很多益处,但很难写,也很难 debug。在此类案例中,Thread Concurrency Visualization 就是医生,帮忙你全面治理多线程利用并进行优化。
更多细节,参见文档:https://www.jetbrains.com/hel…。
12. Profiler 性能剖析
说到优化,profiling 是另一种代码优化办法。profiling 能够帮忙你查看代码的哪一部分占用了最多的执行工夫。profiler 运行的优先级如下:
1.vmprof
2.yappi
3.cProfil 如果你没有装置 vmprof 或 yappi,则运行规范 cProfile。
更多细节,参见:https://www.jetbrains.com/hel…。
13. 迷信模式
Python 不仅是通用和 web 编程语言,因为 NumPy、SciPy、scikit-learn、Matplotlib、Jupyter 等库和工具的加持,Python 成为数据迷信和机器学习畛域的最优工具。
有了这些弱小工具,你还须要一个弱小的 IDE 来反对这些库所具备的绘图、剖析等所有性能。
对于迷信模式的更多详情,参见 https://www.jetbrains.com/hel…。
14. 近程开发
很多利用呈现 bug 的一个常见起因是,开发环境和生产环境不同。只管在大多数状况下,开发时完满复制生产环境并不事实,但力求实现完满复刻是值得追寻的指标。
在 PyCharm 的帮忙下,你能够应用另一台计算机(如 Linux VM)上的解释器对利用进行 debug。这样,你就能够领有与生产环境一样的解释器了,从而防止很多因开发环境和生产环境差别导致的 bug。
详情参见:https://www.jetbrains.com/hel…。
15. 写在最初
PyCharm 是最好的 Python 开发 IDE 之一。它提供大量劣势,帮忙执行例行工作,从而节约大量工夫。学完本教程,当初你晓得如何利用 PyCharm 进步生产效率了吗?
福利:豆花同学为大家精心整顿了一份对于 linux 和 python 的学习材料大合集!有须要的小伙伴们,关注豆花集体公众号:python 头条!回复关键词“材料合集”即可收费支付!