Python的IDE(Integrated Development Environment 集成开发环境)非常多,如:VS Code、Sublime、NotePad、Python自带编辑器IDLE、JuPyter、Eclipse + PyDev等等,但是对于项目开发、管理、部署等稍微大一点的项目,猪哥觉得还是PyCharm最好用!

2019年12月2日,PyCharm迎来了2019.3版本,这也许会是2019年的最后一个大版本,那这个版本增加了哪些新功能呢?我们一起来看看吧!

来源 | PyCharm官网
整理 | 猪哥
校正 | 豌豆花下猫

一、Jupyter

PyCharm 在 2019年里连续发布了2019.12019.22019.3三个大版本,对Jupyter进行改进,这让很多使用者感到欣慰,毕竟目前数据分析比较火,使用Jupyter Notebooks的开发者也越来越多。

注意此功能仅专业版才有!

1.交互式控件

为了提供更多的交互性,Jupyter notebooks支持称为“交互式控件”的功能。这些控件支持将静态笔记本转变为交互式的面板,从而使其他用户在查看你的笔记本时,可以自定义视图。

在此次更新中,PyCharm添加了对交互式控件的支持。这意味着窗口小部件将随着输出一起呈现,并且可以像处理本机Jupyter notebooks一样用于操作笔记。

2.运行时代码补全

PyCharm 的优势之一是借助先进的静态代码分析算法,可以实现智能编码提示。但是,对于动态语言(例如Python)而言,静态代码分析还不足够。这就是为什么在此次更新中,我们利用Jupyter本身提供的运行时信息来对其进行扩展。在某些情况下,例如在字典索引或深层嵌套的表达式中,IDE无法使用静态分析来找出其类型,而此次更新将会使代码补全变得更为智能。

3.在输出面板上放大和缩小

此次更新支持将预览的字体大小设置为与编辑器一致,或者在设置中进行自定义。编辑器提供了“使用Ctrl +鼠标滚轮更改字体大小(缩放)“选项。启用该选项后,你可以在按住Ctrl的同时,使用鼠标滚轮来放大或缩小预览。

二、Python

1.文件路径联想

害怕在写文件名时打错字?特别是有较长文件名时,例如open('data/ survey_data_28112019_exported.csv') ?现在,你可以在Python代码编辑器或控制台中获得文件路径建议。我们扩展了上下文感知的代码补全功能,因此上下文中与文件相关的字符串字面量可以为可能的文件路径提供建议。

2.支持相对import

与绝对import相比,你更喜欢相对import吗?PyCharm现在支持在这些风格之间自动地转换。如果你已经使用相对导入方式导入了某个程序包,那么所有新的从该程序包的导入也将自动创建为相对导入。

3.Python 3.8:TypedDicts

PyCharm 通过对TypedDict的支持,避免字典的错误赋值。为你的键值对结构提供更精确的展示,我们的代码编辑器能帮助你找到恰当的使用方法。

4.Python 3.8:字面量类型注解

你是否有采用特定字符串字面量的方法,例如带文件模式“open”方法?你可以使用Python 3.8的Literal类型注解来检查类型,还可以检查特定的值。现在,当你调用的函数出现不支持的值时,PyCharm会出现告警。

5.自动创建pytest测试

我们升级了用于自动创建测试的工具,现在也支持pytest。有了这个,PyCharm允许你通过在方法声明的菜单中,仅仅单击“Go To | Test”选项,就自动创建pytest测试。

6.调试器:集合的大小信息

调试时的跟踪信息应尽可能清晰与详细。这就是我们调整变量视图的原因,现在它可以显示组织得更好且更全面的数据。有了这个,就可以期待新的排序、科学数组的更好的视觉表示、集合长度的显示以及重复细节的去除。

三、性能提升

1.更快的索引

PyCharm 先进的代码内视可以帮助你更快地完成工作。为此,我们需要索引你的代码和所有导入的包。当你使用已编译扩展的软件包时(如许多数据科学软件包),在对其进行索引之前,我们需要生成描述Python接口的Python骨架(存根文件)。我们对此过程进行了改进,预计整个索引过程至少快25%。当然,如果你在多个virtualenv中使用同一程序包,我们将重用已经创建的索引。

2.冻结次数减少,并改进了冻结报告

不幸的是,有时候PyCharm的UI会冻结一段时间,然后才让你重新开始处理代码。我们意识到这是非常令人不快的事情,因此我们正在努力消除这些问题。我们已经修复了许多可能导致UI冻结的问题,现在,你可以直接从IDE中上报UI冻结,这使我们有可能调查其冻结的原因,并确保它不再发生。提前感谢你帮助我们摆脱PyCharm中的UI冻结问题!

3.更多的改进

  1. 今年,我们在所有JetBrains IDE的启动性能方面进行了大量工作。我们的核心平台的启动时间在2019.3版本中得到了进一步改善,我们将继续努力使IDE更快地启动。
  2. 现在可以在不重启IDE的情况下更改主题。在选择预先安装的主题时或下载新主题后,都可以进行此操作。
  3. 在PyCharm 2019.3中,各种对于处理事件和忽略文件的改进,使版本控制的状态更新得更快。
  4. 我们对编辑器的呈现方式进行了一些更改,现在滚动浏览一个长文件变得更加平滑。

四、数据库支持

注意此功能仅专业版才有!

1.支持MongoDB

你要在MongoDB上构建应用程序吗?那么你将很高兴地得知现在可以在PyCharm中查看MongoDB集合。通过从数据库工具窗口(视图|工具窗口|数据库)添加数据源来连接数据库。PyCharm Professional Edition附带了 JetBrains DataGrip(JetBrains制造的专业SQL IDE)的所有数据库功能。

五、IDE功能

1.参数化运行配置

在创建命令行应用程序时,通常可以方便地快速更改参数。尽管你可以进入“编辑配置”来进行更改,但是现在有一种更好的方法:使用新的运行配置宏(变量),每次启动应用程序时,PyCharm都会提示你输入值。

2.在选定内容中搜索

是否想知道在文件的某部分中,某些文本出现的频率?现在,在你选定的内容中,find动作将自动查找。想要到处搜索?再次按Ctrl-F(在macOS上为Cmd-F),会将搜索范围扩展到文件的其余部分。

3.更多的改进

如果应用程序的一部分是用JavaScript编写的,则很可能你在某处使用了Handlebars模板。如果安装了 Handlebars插件,则现在可以在任何Python字符串中启用Handlebars代码智能。只需在字符串中按Alt-Enter,选择“插入语言或参考”,然后键入“Handlebars”。

六、版本控制

1.与当前分支的改进比较

你拥有的分支越多,就越难追踪它们之间的差异。在新版本的PyCharm中,分支比较功能看起来更好,并且可以使你快速了解哪些提交使两个分支之间产生了差异。

2.改进了克隆代码仓的UI

无论你使用哪种代码仓,当你要拉取新项目时,我们现在都在同一个地方开始。

3.更多的改进

  1. 拉取远程分支时,通常需要创建一个跟踪该远程分支的本地分支。在PyCharm 2019.3中,'checkout'操作只有一个,可以确保你看到远程分支的当前状态,但是没有丢失任何本地提交的风险。
  2. PyCharm始终能够 push 你当前已拉取的分支。有时,你可能要推送另一个分支,从现在开始,不再需要首先将其检出。

七、Web开发

注意此功能仅专业版才有!

1.CDN中的CSS类

你是否要使用CDN中的样式表?现在,我们可以下载该样式表的一个版本,专门用于代码补全。

2.查看调试JavaScript时方法返回的值

就像在Python调试器中一样,JavaScript调试器现在可以向你显示你正在调用的方法的返回值。要查看返回值,请单击调试器上的齿轮图标,然后启用“显示返回值”。

3.更多的改进

  1. 设置CSS样式,以强制使用单引号或双引号。
  2. 无论你在CSS中使用单引号还是双引号,PyCharm现在都可以帮助你使引号保持一致。在 Other 选项卡中的 Settings | Editor | Code Style | Style Sheets | CSS 中进行配置。
  3. 你是否使用未为其定义propTypes的React组件?PyCharm现在能够推断 props,并且将为你提供未定义propTypes的组件的代码补全。

PyCharm 2019.3发布,增加了哪些新功能呢?的更多相关文章

  1. Spring Boot 2.2 增加了一个新功能,启动飞起~

    前几天栈长分享了一个好玩的框架:一个比Spring Boot快44倍的Java框架!,是不是感觉 Spring Boot 略慢?今天讲一下 Spring Boot 添加的这个新特性,可以大大提升 Sp ...

  2. 2019微软Power BI 每月功能更新系列——3月Power BI 新功能学习

    Power BI3月产品功能更新发布啦!本次新功能新增了热图和单选切片器:完善了新的DAX功能和对现有功能的改进(例如按钮和选择窗格):同时官方表示建模视图的全面改进也正在进行中~Woo~那么,本月更 ...

  3. Photoshop CC 2020 (PS 2020)改变与新功能

    Adobe Photoshop CC 2020中文版新增相机防抖动功能.CameraRAW 功能改进.图像提升采样.属性面板改进.Behance集成等功能,以及同步设置和其他更多有用的功能.ps202 ...

  4. ES2019 / ES10有什么新功能?

    ECMAScript(简称ES)是ECMA International在ECMA-262和ISO / IEC 16262中标准化的脚本语言规范.它是为了标准化JavaScript语言而创建的,以便从浏 ...

  5. MySQL Database on Azure新功能

    本月中国版的MySQL Database on Azure发布了两项新功能: 1.主从复制——只读实例 在这之前Azure上的MySQL数据库也是支持主从复制的,但是只能作为on-premises部署 ...

  6. 谷歌的 I/O 2019,究竟推出了什么新特性?

    前言 昨天,也即赶在微软 Build 2019 的第二天,一年一度的2019年 Google I/O大会在美国如期举行,Google I/O 2019全纪录:AI惊艳,Android Q真香,包括两款 ...

  7. PyCharm 2019.3激活破解教程(永久)

    2019.12.02 jetbrains公司发布了Python的最强编辑器PyCharm 2019.3版本.本次大版本主要对Jupyter notebooks .MongoDB.Python3.8功能 ...

  8. Docker 1.12.0将要发布的新功能

    Docker 1.12.0将要发布的新功能 导读 按计划,6/14 是1.12.0版本的 feature冻结 的日子,再有两个星期Docker 1.12.0也该发布了.这里列出来的新功能,都是已经合并 ...

  9. Axure RP Pro 6.5 正式版发布,新功能介绍,

    转:http://www.babesun.com/blog/page/5 2012-4-19,Axure公司发布了Axure RP Pro 6.5 正式版.网上高手发现了Axure支持多语言文件,以此 ...

随机推荐

  1. [CentOS Server] Bug when calling matlab in bash

    尝试了好几遍,仍然不能用简写命令调用matlab,这里把过程记录如下. (1). 登录 server [She@She ~]$ ssh shecl@xx.xx.xx.xx Last :: from x ...

  2. 使用SSIS进行数据清洗

    简介     OLTP系统的后端关系数据库用于存储不同种类的数据,理论上来讲,数据库中每一列的值都有其所代表的特定含义,数据也应该在存入数据库之前进行规范化处理,比如说"age"列 ...

  3. uva 10668

    #include <iostream> #include <cstdlib> #include <cstdio> #include <cmath> us ...

  4. Android自己主动化測试解决方式

    如今,已经有大量的Android自己主动化測试架构或工具可供我们使用,当中包含:Activity Instrumentation, MonkeyRunner, Robotium, 以及Robolect ...

  5. hdu 4081 Qin Shi Huang&#39;s National Road System(最小生成树+dp)2011 Asia Beijing Regional Contest

    同样是看别人题解才明白的 题目大意—— 话说秦始皇统一六国之后,打算修路.他要用n-1条路,将n个城市连接起来,并且使这n-1条路的距离之和最短.最小生成树是不是?不对,还有呢.接着,一个自称徐福的游 ...

  6. Magento 的程序架构与流程

    以下是分别详细解读分析程序的各层次源码: MAGENTO_ROOT: //入口文件 /index.php -----–| 1.判断php版本是否大于5.22.引入Magento主要的中心类/app/M ...

  7. C# 中 双问号??的用法

    int? x = null;int y = x ?? -1; 这里的y不能为null,但是等于x,x为null时赋值给y会报错.?? 可以在x==null时对y赋值-1 更多相关资料:https:// ...

  8. c#实现输出本月的月历

    效果如图: 代码如下: namespace WebForm { public partial class WebForm1 : System.Web.UI.Page { protected void ...

  9. C语言-第一次作业

    题目6-1 计算两数的和与差 1.设计思路 (1)主要描述题目算法 第一步:看主函数知道程序输入浮点型变量a,b,通过函数计算输出和与差. 第二步:函数部分将a赋值op1,b赋值op2,&su ...

  10. 神经网络——反向传播BP算法公式推导

    在神经网络中,当我们的网络层数越来越多时,网络的参数也越来越多,如何对网络进行训练呢?我们需要一种强大的算法,无论网络多复杂,都能够有效的进行训练.在众多的训练算法中,其中最杰出的代表就是BP算法,它 ...