您当前的位置:中国科技头条网要闻正文

人生苦短我用PyCharm

时间:2019-09-08 15:17:52  阅读:665+ 作者:责任编辑NO。谢兰花0258

选自RealPython

作者:Jahongir Rahmonov

机器之心编译

参加:魔王

PyCharm 是一种 Python IDE,能够协助程序员节省时刻,进步出产功率。那么详细怎么运用呢?本文从 PyCharm 装置到插件、外部东西、专业版功用等进行了逐个介绍,期望能够协助到咱们。

机器之心之前也没体系地介绍过 PyCharm,怎样装备环境、怎样 DeBug、怎样同步 GitHub 等等或许都是经过经历或许探究学会的。在本文中,咱们并不会供给十分完善的攻略,可是会介绍 PyCharm 最主要的一些才能,了解这些后,后边就需求咱们在实践中再详细学习了。

机器之心的读者应该十分了解 JetBrains 开发的 PyCharm 了,它差不多是 Python 最常用的 IDE。PyCharm 可认为咱们节省许多时刻,它能够办理代码,并完结许多其他使命,如 debug 和可视化等。

本文将介绍:

PyCharm 装置

在 PyCharm 中写代码

在 PyCharm 中运转代码

在 PyCharm 中进行代码 debug 和测验

在 PyCharm 中修改已有项目

在 PyCharm 中查找和导航

在 PyCharm 中运用版别操控

在 PyCharm 中运用插件和外部东西

运用 PyCharm Professional 功用,如 Django 支撑和科学形式

本文假定读者了解 Python 开发,且核算机中已装置某个版别的 Python。该教程将运用 Python 3.6 版别,屏幕截图和 demo 均来自 macOS 体系。因为 PyCharm 可在一切干流平台上运转,读者在其他体系中会看到稍微不同的 UI 元素,或许需求调整某些指令。

PyCharm 装置

本文将运用 PyCharm Community Edition 2019.1 版别,该版别免费且可在一切干流平台上运用。只要最终一部分「PyCharm Professional 功用」运用的是 PyCharm Professional Edition 2019.1 版别。

引荐运用 JetBrains Toolbox App 装置 PyCharm。运用该 App,你能够装置不同的 JetBrains 产品或许同一产品的不同版别,并在必要的情况下更新、回滚和轻松删去恣意东西。你还能够在恰当的 IDE 及版别中快速翻开恣意项目。

Toolbox App 装置攻略,拜见 JetBrains 官方文档:https:///help/pycharm/installation-guide.html#toolbox。

该 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」,现在你能够写代码了!

在 PyCharm 中写代码

在 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 功用,它能够协助用户削减退格键运用次数。

在 PyCharm 中运转代码

现在你现已编码完结该游戏,能够运转了。

该游戏程序有三种运转办法:

在 Mac 体系中运用快捷键 Ctrl+Shift+R,在 Windows 或 Linux 体系中,运用快捷键 Ctrl+Shift+F10。

右键单击布景,从菜单中挑选「Run 『guess_game』」。

因为该程序具有__main__ 从句,你能够点击__main__ 从句左边的绿色小箭头,挑选「Run 『guess_game』」。

运用以上任一办法运转该程序,窗口底部会呈现终端面板(Terminal pane),显现你的代码输出成果:

你能够玩一下这个游戏,看看自己能否猜中数字。(专业主张:从 50 开端猜。)

在 PyCharm 中进行代码 debug

找到奥秘数字了吗?假设找到了,你或许会看到一些古怪的东西:程序没有打印出祝贺信息和显现退出按钮,而是从头开端了。这便是 bug 地点。要想发现程序从头开端的原因,你需求 debug。

首要,点击第 8 行代码左边的空白区域,设置断点:

断点即程序运转到这一行时会主动中止,你能够探究断点处之后的代码有什么过错。接下来,从以下三种办法中挑选一种开端 debug:

在 Mac 体系中运用 Ctrl+Shift+D 键,在 Windows 或 Linux 体系中运用 Shift+Alt+F9 键。

右键单击布景,挑选「Debug 『guess_game』」。

点击__main__从句左边的绿色小箭头,挑选「Debug 『guess_game』」。

之后,你将看到底部呈现 Debug 窗口:

依照下列进程履行程序 debug:

留意当时行被蓝色高亮显现。

Debug 窗口显现 random_int 及其值。记载该数字。(上图中该数字为 85。)

点击 F8 履行当时代码行,并履行到下一行代码。如有必要,你也能够运用 F7 跳转到当时行内的函数。跟着你持续履行句子,变量的改动将主动呈现在 Debugger 窗口。

留意 Debugger 标签右侧有一个 Console 标签。Console 标签和 Debugger 标签彼此独立。你能够在 Console 中与程序进行交互,在 Debugger 中履行 debug 动作。

转向 Console 标签,进入猜想进程。

键入左边 Debugger 标签中显现的数字,点击 Enter 键。

转回 Debugger 标签。

再次点击 F8,核算 if 句子。留意现在你在第 14 行。为什么不是第 11 行呢?因为第 10 行的 if 句子被核算为 False。那么为什么当你键入数字后它算出来为 False 了呢?

仔细看第 10 行,留意咱们在比照 user_guess 和一个过错的项。咱们应该比照用户猜想的数字和 random_int,但此处咱们比照的是 randint(从 random 包导入的函数)。

将 randint 更改为 random_int,依照相同的进程从头开端 debug。你会发现,这一次抵达的是第 11 行,第 10 行算出来为 True:

祝贺你,bug 被修正了!

在 PyCharm 中进行代码测验

不经单元测验的运用都不牢靠。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) 办法的作用是使其间一个测验变慢,以便按时长对测验进行排序。

在 PyCharm 中修改已有项目

单文件项目十分适宜作为示例,但你一般需求处理较大的项目。这部分将介绍怎么运用 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…。其他进程和创立新项意图进程相同。

在 PyCharm 中查找和导航

在大项目中,咱们很难记住每个事物的方位,因而快速导航和查找十分重要。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:///help/pycharm/tutorial-exploring-navigation-and-search.html。

PyCharm 中的版别操控

版别操控体系(如 Git 和 Mercurial)是现代软件开发国际中最重要的东西之一。因而,IDE 有必要支撑版别操控。PyCharm 在这方面做得很好,它集成了许多盛行的版别操控体系,如 Git(和 Github (https://github.com/))、Mercurial、Perforce 和 Subversion。

注:以下示例中运用的版别操控体系为 Git。

装备版别操控体系(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 和 >>/

在上图中,关于第一个抵触行,作者挑选回绝自己的更改,承受队友的更改。而在第二个抵触行中,作者承受了自己的更改,回绝了队友的更改。

运用 PyCharm 中的 VCS 集成还能够履行许多操作。概况拜见 https:///help/pycharm/version-control-integration.html。

在 PyCharm 中运用插件和外部东西

在 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 的协助下剖析现在在处理的文件了。

PyCharm Professional 功用

PyCharm Professional 是 PyCharm 的付费版别,具有更多开箱即用的功用和集成。这部分将概览其主要功用,以及官方文档链接(其间详细介绍了每一项功用)。记住,以下功用在 PyCharm Community 版别中均不可用。

Django 支撑

Django 是最盛行和最受喜欢的 Python web 结构,PyCharm 对 Django 供给广泛的支撑。要保证对 Django 的支撑,需求履行以下进程:

在 Mac 体系中翻开 Preferences,在 Windows 或 Linux 体系中翻开 Settings。

挑选 Languages and frameworks。

挑选 Django。

检查复选框 Enable Django support。

运用更改。

现在保证了对 Django 的支撑,你在 PyCharm 中的 Django 开发之旅将轻松许多。详细而言在创立项目时,你会得到一个专用的 Django 项目类型。这表明,当你挑选该类型时,你将具有一切必要文件和设置。这等同于运用 django-admin startproject mysite。

你也能够在 PyCharm 内直接运转 manage.py 指令。现在支撑的 Django 模板,包含以下一些:

语法和过错高亮显现

代码补全

导航

block 称号补全

自定义标签和过滤器补全

标签和过滤器的快速文档

模板 debug 才能

除此之外,咱们还能够在其他 Django 部分(如视图、URL 和模型)中履行代码补全、对 Django ORM 供给代码寻找支撑(code insight support)、对 Django 模型供给模型依靠项联络图。

更多细节,拜见官方文档:https:///help/pycharm/django-support7.html。

数据库支撑

现代数据库开发是一个杂乱的使命,需求多个支撑体系和作业流。这也是 JetBrains 开发独立 IDE DataGrip 的原因。DataGrip 是独立于 PyCharm 的产品,二者的运用场景和授权都不相同。

但走运的是,经过 Database tools and SQL 插件(该插件默许敞开),PyCharm 能够支撑 DataGrip 中的一切特性。在该插件的协助下,你能够查询、创立和办理数据库,不论数据库在本地、服务器,仍是在云端。该插件支撑 MySQL、PostgreSQL、Microsoft SQL Server、SQLite、MariaDB、Oracle、Apache Cassandra 等。

关于该插件的更多用处,请检查文档:https:///help/pycharm/relational-databases.html。

线程并发可视化(Thread Concurrency Visualization)

Django Channels、asyncio 和近期结构(如 Starlette (https:///help/pycharm/thread-concurrency-visualization.html。

Profiler

提到优化,profiling 是另一种代码优化办法。profiling 能够协助你检查代码的哪一部分占用了最多的履行时刻。profiler 运转的优先级如下:

1. vmprof

2. yappi

3. cProfile

假设你没有装置 vmprof 或 yappi,则运转规范 cProfile。更多细节,拜见:https:///help/pycharm/profiler.html。

科学形式

Python 不仅是通用和 web 编程言语,因为 NumPy、SciPy、scikit-learn、Matplotlib、Jupyter 等库和东西的加持,Python 成为数据科学和机器学习范畴的最优东西。有了这些强壮东西,你还需求一个强壮的 IDE 来支撑这些库所具有的绘图、剖析等一切功用。

关于科学形式的更多概况,拜见 https:///help/pycharm/matplotlib-support.html。

长途开发

许多运用呈现 bug 的一个常见原因是,开发环境和出产环境不同。虽然在大多数情况下,开发时完美仿制出产环境并不实际,但力求完结完美复刻是值得寻找的方针。

在 PyCharm 的协助下,你能够运用另一台核算机(如 Linux VM)上的解说器对运用进行 debug。这样,你就能够具有与出产环境相同的解说器了,然后防止许多因开发环境和出产环境差异导致的 bug。

概况拜见:https:///help/pycharm/remote-debugging-with-product.html。

定论

PyCharm 是最好的 Python 开发 IDE 之一。它供给许多优势,协助履行例行使命,然后节省许多时刻。学完本教程,现在你知道怎么运用 PyCharm 进步出产功率了吗?

原文地址:https://realpython.com/pycharm-guide/

本文为机器之心编译,转载请联络本大众号取得授权。

------------------------------------------------

“如果发现本网站发布的资讯影响到您的版权,可以联系本站!同时欢迎来本站投稿!