PyCharm 2019.3 最新变化

提供适用于 Jupyter notebook 的交互式微件、MongoDB 支持以及面向所有 Python 3.8 功能的代码辅助。

Jupyter仅限 Pro 版

交互式微件

交互式微件

To provide more interactivity, Jupyter notebooks support interactive controls known as interactive widgets. 这些控件让您可以将静态 notebook 转换为交互式仪表板,从而允许查看您的 notebook 的用户自定义他们的视图。 在此更新中,PyCharm 添加了对交互式微件的支持。 这意味着微件可以通过输出显示,并能用于处理 notebook,就像使用原生 Jupyter notebook 一样。

IDE 现在支持最热门的微件库。 如果您发现库无法正常使用,请务必提交问题

运行时补全

运行时补全

PyCharm 的一个优势是智能编码辅助,此功能通过我们的高级静态代码分析算法实现。 不过,对于像 Python 一样的动态语言,静态代码分析是远远不够的。 这就是为什么在此更新中,我们利用 Jupyter 本身提供的运行时信息对它进行了扩展。 这就可以在某些情况下实现更智能的代码补全,例如 IDE 无法使用静态分析确定类型的字典索引或深度嵌套的表达式。

在输出面板上缩放

在输出面板上缩放

预览的字体大小现在可以设置为与编辑器中的字体大小一致,也可以在设置中自定义。 此外,预览现在会尊重编辑器选项 `Change font size (Zoom) with Ctrl+Mouse Wheel `。 启用时,您可以按住 Ctrl,使用鼠标滚轮在预览中缩放。

其他改进

  • 如果 Jupyter notebook 在 IDE 之外更改(例如,通过原生 Jupyter 接口),IDE 现在会自动同步它的状态,以确保 IDE 用户看到最新版本的 notebook 且没有更改丢失。

Python

文件路径的补全

文件路径的补全

担心编写文件名时出现拼写错误? 特别是较长的文件名,如“open(‘data/survey_data_28112019_exported.csv’)”? 您现在可以在 Python 代码编辑器或控制台中获取文件路径建议。 我们扩展了可感知上下文的代码补全功能,因此,文件相关上下文中的字符串文字现在会显示可能文件路径的建议。

相对导入支持

相对导入支持

您更喜欢相对导入还是绝对导入? PyCharm 现在可以在这些样式之间自动转换。 如果您已经准备从包含相对导入的特定软件包中导入,该软件包中的任何新导入也都会自动创建为相对导入。

Python 3.8:TypedDicts

Python 3.8:TypedDicts

利用 PyCharm 对 TypedDict 的支持避免不正确的字典赋值。 获取键值对结构的准确表示,并让我们的代码编辑器为您提供合适的用例。

Python 3.8:文字类型注释

Python 3.8:文字类型注释

您有包含特定文字字符串的方法(如“open”的文件模式)吗? 您可以使用 Python 3.8 的“字符串”类型注释,不仅能够查看类型,还可以查看特定值。 当您调用包含不受支持的值的函数时,PyCharm 现在会警告您。

自动创建 pytest 测试

自动创建 pytest 测试

我们自动创建测试的工具已升级,它现在还支持 pytest。 使用此工具,PyCharm 允许您自动创建 pytest 测试,只需点击方法声明的上下文菜单中的 Go To | Test 选项。

调试器:集合的大小信息

调试器:集合的大小信息

调试时跟踪信息应尽可能清楚、详细。 这就是为什么我们调整了变量视图,现在它可以显示组织更好且全面的数据。 在此视图下,可以获得新顺序,改进科学数组的可视化表示,显示集合长度并移除了重复的详细信息。

其他改进

  • 您在处理网络脚本或与硬件连接并使用十六进制或二进制值吗? 好消息! PyCharm 现在集成了转换功能,可以直接从控制台或通过变量视图从调试器将十进制值的格式转换成十六进制或二进制格式。
  • 在 Windows 上为 Linux 开发? 我们添加了对适用于 Linux 的 Windows 子系统 2 的支持。 在 PyCharm 中配置您的 Python 解释器以使用 WSL 2 中可用的一个仅限 Pro 版

性能改进

索引编制速度更快

索引编制速度更快

借助高级代码洞察,PyCharm 可以帮助您更快地完成工作。 要使此改进发挥作用,我们需要为您的代码和您导入的所有软件包编制索引。 当您使用包含编译扩展的软件包(例如许多数据科学包)时,在为其编制索引之前,我们需要生成描述 Python 接口的 Python 骨架(存根文件)。 我们改进了此流程,整个索引编制流程的速度至少可以加快 25%。 当然,如果您在多个 virtualenv 中使用同一个软件包,我们会重用已经创建的索引。

冻结减少,冻结报告得到改进

冻结减少,冻结报告得到改进

遗憾的是,PyCharm 的 UI 有时会冻结一段时间,然后您才能返回处理代码。 我们意识到这会引起用户不愉快,因此,我们正在努力消除这些问题。 我们修复了会导致 UI 冻结的许多问题,并且现在让您可以直接从 IDE 中立即报告 UI 冻结,这使我们可以调查冻结原因并确保问题不再出现。 提前感谢大家帮助我们在 PyCharm 中消除 UI 冻结!

其他改进

  • 今年,我们在所有 JetBrains IDE 的启动性能上下了很大功夫。 我们核心平台的启动时间在 2019.3 版本中进一步缩短,我们也将继续努力让 IDE 更快启动。
  • 现在,您可以在不重启 IDE 的情况下更改主题。 选择预安装的主题时或者下载新主题后都无需重启。
  • 事件和忽略文件处理中的各项改进使版本控制状态在 PyCharm 2019.3 中的更新速度加快。
  • 我们还对编辑器的显示方式进行了一些更改,现在,在长文件中滚动变得更加平滑。

数据库支持仅限 Pro 版

MongoDB 支持

MongoDB 支持

您是否在 MongoDB 上开发应用程序? 如果是,您会乐于听到现在可以在 PyCharm 中浏览 MongoDB 集合这个好消息。 在数据库工具窗口 (View | Tool Windows | Database) 中添加数据源,连接您的数据库。 PyCharm Professional Edition 包含 JetBrains DataGrip 中的所有数据库功能,后者是 JetBrains 出品的专业 SQL IDE。

IDE功能

参数化运行配置

参数化运行配置

当您在开发命令行应用程序时,能够快速更改参数通常会很方便。 尽管您始终可以使用“Edit Configuration”更改,现在有一种更好的方式:借助新的运行配置宏(变量),您可以让 PyCharm 在您每次启动应用程序时向您提示值。

在选择范围中查找

在选择范围中查找

想知道一些文本在某部分文件中出现的频率如何? Find 操作现在会先以您的选择范围为查找范围。 想要随处搜索? 再按一次 Ctrl-F 可将搜索范围扩大到文件的其余部分。

其他改进

  • 如果您的应用程序的一部分使用 JavaScript 编写,那么您很可能在某个地方使用 Handlebars 模板。 如果您已安装 Handlebars 插件,现在可以在任何 Python 字符串中启用 Handlebars 代码智能。 只需在您的字符串中按 Alt-Enter,选择 ‘Inject language or reference’,然后输入 ‘Handlebars’。

版本控制

改进了与当前分支的对比

改进了与当前分支的对比

您的分支越多,跟踪它们之间的不同就越困难。 在新版本的 PyCharm 中,分支对比功能看起来更出色,能够让您快速了解哪些提交使两个分支产生不同。

改进了用于克隆仓库的 UI

改进了用于克隆仓库的 UI

无论您使用哪种类型的仓库,我们现在为您提供了一个能够签出新项目的地方。

其他改进

  • 签出远程分支时,您通常希望创建能够跟踪远程分支的本地分支。 在 PyCharm 2019.3 中,只有一个“签出”操作,能够确保您看到远程分支的当前状态,没有丢失任何本地提交的风险。
  • PyCharm 始终能够推送您当前已签出的分支。 有时,您可能想要推送另一个分支,从现在开始,不再需要首先将其签出。

Web 开发仅限 Pro 版

来自 CDN 的 CSS 类

来自 CDN 的 CSS 类

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

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

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

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

其他改进

  • 设置 CSS 样式设置以强制使用单引号或双引号。
  • 无论您在 CSS 中使用单引号还是双引号,PyCharm 现在都可以帮助您保持引号一致。 在 Settings | Editor | Code Style | Style Sheets | CSS 中的“Other”标签页上进行配置。
  • 您是否使用没有为它们定义 propType 的 React 组件? PyCharm 现在可以推断属性,并为未定义 propType 的组件提供代码补全。