详尽实用的 PyCharm 教程,这篇文章值得一看

PyCharm 是一款强大好用的 IDE 工具,几乎是 Python 开发的首选,今天分享一篇详细有料的教程,一块儿来学习吧!html

本文假设读者熟悉 Python 开发,且计算机中已安装某个版本的 Python。该教程将使用 Python 3.6 版本,屏幕截图和 demo 均来自 macOS 系统。python

因为 PyCharm 可在全部主流平台上运行,读者在其余系统中会看到略微不一样的 UI 元素,可能须要调整某些命令。linux

1. PyCharm 的安装

本文将使用 PyCharm Community Edition 2019.1 版本,该版本免费且可在全部主流平台上使用。只有最后一部分「PyCharm Professional 功能」使用的是 PyCharm Professional Edition 2019.1 版本。推荐使用 JetBrains Toolbox App 安装 PyCharm。git

使用该 App,你能够安装不一样的 JetBrains 产品或者同一产品的不一样版本,并在必要的状况下更新、回滚和轻松删除任意工具。你还能够在恰当的 IDE 及版本中快速打开任意项目。github

Toolbox App 安装指南,参见 JetBrains 官方文档:https://www.jetbrains.com/help/pycharm/installation-guide.html#toolbox。该 App 会根据你的操做系统提供合适的安装说明。web

若是它没法没法准确识别系统,你能够在右上角的下拉列表中找到合适的系统。数据库

安装成功后,启动该 app 并接受用户协议。在 Tools 选项下,你能够看到一个可用产品列表。从中找到 PyCharm Community,并点击 Install。django

好啦,如今你的机器上已经安装 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/view/alcazar-web-framework/)。当你在本地已有项目时,使用如下方法中的任意一个在 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/help/pycharm/tutorial-exploring-navigation-and-search.html。

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/help/pycharm/version-control-integration.html。

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/help/pycharm/django-support7.html。

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/help/pycharm/relational-databases.html。

程并发可视化(Thread Concurrency Visualization)Django Channels、asyncio 和近期框架(如 Starlette (https://www.starlette.io/))代表异步 Python 编程正逐渐成为趋势。

异步编程具有不少好处,但很难写,也很难 debug。在此类案例中,Thread Concurrency Visualization 就是医生,帮助你全面管理多线程应用并进行优化。

更多细节,参见文档:https://www.jetbrains.com/help/pycharm/thread-concurrency-visualization.html。

12. Profiler 性能分析

说到优化,profiling 是另外一种代码优化方法。profiling 能够帮助你查看代码的哪一部分占用了最多的执行时间。profiler 运行的优先级以下:

1.vmprof

2.yappi

3.cProfil若是你没有安装 vmprof 或 yappi,则运行标准 cProfile。

更多细节,参见:https://www.jetbrains.com/help/pycharm/profiler.html。

13. 科学模式

Python 不只是通用和 web 编程语言,因为 NumPy、SciPy、scikit-learn、Matplotlib、Jupyter 等库和工具的加持,Python 成为数据科学和机器学习领域的最优工具。

有了这些强大工具,你还须要一个强大的 IDE 来支持这些库所具有的绘图、分析等全部功能。

关于科学模式的更多详情,参见 https://www.jetbrains.com/help/pycharm/matplotlib-support.html。

14. 远程开发

不少应用出现 bug 的一个常见缘由是,开发环境和生产环境不一样。尽管在大多数状况下,开发时完美复制生产环境并不现实,但力求实现完美复刻是值得追寻的目标。

在 PyCharm 的帮助下,你可使用另外一台计算机(如 Linux VM)上的解释器对应用进行 debug。这样,你就能够拥有与生产环境同样的解释器了,从而避免不少因开发环境和生产环境差别致使的 bug。

详情参见:https://www.jetbrains.com/help/pycharm/remote-debugging-with-product.html。

15. 写在最后

PyCharm 是最好的 Python 开发 IDE 之一。它提供大量优点,帮助执行例行任务,从而节约大量时间。学完本教程,如今你知道如何利用 PyCharm 提升生产效率了吗?

福利:豆花同窗为你们精心整理了一份关于linux和python的学习资料大合集!有须要的小伙伴们,关注豆花我的公众号:python头条!回复关键词“资料合集”便可免费领取!