创建纯Python项目
纯Python 项目 适用于纯Python编程。
创建一个空项目
- 执行以下操作之一:
“新建项目”对话框打开。
-
在主菜单上,选择“ 文件”| 新项目
-
在“ 欢迎”屏幕上,单击“ 创建新项目”
-
- 在“ 新建项目”对话框中,执行以下操作:
-
在“ 项目类型”部分中,单击“ 纯Python” 。
-
指定项目位置和解释器。
-
- 接下来,单击以展开“ 项目解释器”节点,然后通过单击相应的单选按钮选择新环境或现有解释器。以下步骤取决于您的选择:
- 使用新环境:如果已选择此选项,请选择用于创建虚拟环境的工具。为此,请单击下拉列表并选择 Virtualenv,Pipenv或Conda。
接下来,指定新虚拟环境的位置和基本解释器。如有必要,请单击“ 继承全局站点包”和“ 使所有项目可用”复选框。
-
现有解释器:如果选择了此选项,请从下拉列表中选择所需的解释器,或者(如果找不到所需的解释器),单击并选择解释器。有关详细信息, 请参阅 配置Python解释器
- 使用新环境:如果已选择此选项,请选择用于创建虚拟环境的工具。为此,请单击下拉列表并选择 Virtualenv,Pipenv或Conda。
-
单击“ 创建”按钮。
访问项目结构
- 执行以下操作之一:
-
在主菜单上,选择“ 文件”| 设置(适用于Windows和* NIX)或 PyCharm | macOS的首选项。
-
在主工具栏上,单击。
-
按Ctrl+Alt+S。
-
-
在“ 设置/首选项”对话框(Ctrl+Alt+S)中,单击“ 项目结构” 页面。
配置内容根
任何项目都至少包含一个 与项目一起创建的内容根。
您可以创建其他内容根,也可以删除不必要的内容。
创建内容根
删除内容根
指定文件夹类别
以下是将文件夹分配给其他类别的方法。以类似的方式,您可以将文件夹分配给任何其他类别。这可以在“项目”工具窗口和“设置/首选项”对话框的“ 项目结构”页面上完成。
要在“项目”工具窗口中为文件夹指定类别,请按照下列步骤操作
-
打开项目工具窗口(例如View | Tool Windows | Project)。
-
选择要分配给特定类别的文件夹。
-
在上下文菜单中,指向标记目录为并选择所需的类别。
以类似的方式,您可以稍后更改文件夹类别。(只需从上下文菜单中选择一个不同的类别。)
要取消文件夹与其当前类别的关联(即将文件夹设为“普通”文件夹 ),请选择取消标记为<current_category> Root。(例如,Unmark作为测试源根)。
要在“项目结构”页面中为文件夹指定类别,请按照下列步骤操作
-
“设置/首选项”对话框的“ 打开项目结构”页面
-
选择要为其分配类别的文件夹。
-
例如,单击类别按钮。
按名称模式排除文件和文件夹
您可以 通过指定名称模式来排除文件和文件夹 。使用“ 排除文件”字段指定模式。
名称与至少一个指定模式匹配的文件和文件夹将被排除。文件夹及其所有内容均被排除在外。
在内容根中配置文件夹
概观
在内容根目录中,PyCharm可以区分包含源代码的文件夹,以及在搜索,解析,观看等时要忽略的文件夹。为此,您可以将内容根目录下的任何文件夹标记为源文件夹,或者排除因此它对PyCharm变得不可见。
标记目录
您可以通过两种不同的方式将文件夹分配给类别:
通过项目结构标记内容根目录下的目录
-
打开“项目结构”设置。
-
在“ 项目结构”页面的“ 项目”窗格中,单击要为其配置内容根的项目。
-
在“ 项目结构”页面的“ 内容”根窗格中,单击所需的内容根。此内容根目录下的目录显示为树视图。
- 选择要标记的目录,然后执行以下操作之一:
-
单击顶部的其中一个图标,为此目录指定所需的状态。
-
在目录的上下文菜单中选择相应的状态命令。
-
按Alt+<first letter of the directory status>(例如, Alt+E对于排除的根,Alt+R资源或 Alt+S源根)。
-
使用上下文菜单标记目录:
-
在“ 项目工具”窗口中右键单击所需目录。
-
在上下文菜单上,指向标记目录为节点。
-
选择标记为<目录状态>。
取消标记目录
要将文件夹恢复为常规状态,请执行以下操作之一
- 在项目结构中:
-
在内容根目录下的文件夹列表中选择相关目录,然后单击 :
-
再次单击文件夹的状态图标。
-
在目录的上下文菜单中选择相应的命令。
-
-
在“ 项目工具”窗口中,右键单击所需目录,指向“将 目录另存为”节点,然后选择“ 取消标记为<目录状态>”。
填充项目
通过创建各种类型的新元素(目录,包和文件)来填充项目。PyCharm建议使用以下替代方法来访问相应的功能:
-
档案| 主菜单上的新功能。
-
在新的上下文菜单命令。
-
键盘快捷键Alt+Insert。
因此,将显示“ 新建”菜单,您可以在其中选择要创建的元素的类型。
创建Python包
PyCharm可以递归地创建Python包,从而创建整个包结构。
Python包节点标有图标。
创建一个新的Python包
-
在“ 项目”工具窗口中,选择目标目录。
-
在选择的上下文菜单上,选择“ 新建”| Python包,或按Alt+Insert以调用上下文菜单:
-
在打开的“ 新建包”对话框中,指定包名称。
您还可以指定嵌套包; 在这种情况下,名称应该用点分隔:
单击确定。PyCharm创建新的包或包结构:
创建目录
PyCharm使您能够以递归方式创建目录,从而生成整个目录结构。
-
打开项目工具窗口(例如View | Tool Windows | Project)。
-
选择目标目录。
- 执行以下操作之一:
-
选择文件| 新的| 目录。
-
选择新建| 上下文菜单中的目录。
-
按,Alt+Insert然后选择目录。
-
-
在打开的对话框中,指定目录名称。如果要创建多个嵌套目录,请指定用斜杠分隔的目录名称。
从模板创建文件
介绍
PyCharm为它支持的大多数 语言提供 文件模板。这使您可以使用适合文件目的的初始内容创建文件。例如,有Python,HTML / HTML5 / XHTML和JavaScript文件的文件模板。
通常,基于模板的文件的文件扩展名会自动设置,因此您无需指定它。例如,如果您创建Python脚本,它会自动获得 .py
扩展,JavaScript文件会获得 .js
扩展。新的HTML文件获得 .html
扩展。
从模板创建新文件
- 执行以下操作之一:
-
在“ 项目工具”窗口中,选择要在其中创建新文件的目录或包,然后选择“ 文件”| 主菜单上的新功能。
-
右键单击相应的目录或包,然后从上下文菜单中选择“ 新建 ”。
-
按Alt+Insert。
-
- 选择所需的文件类型。通常,除文件,包 和目录之外的所有选项都对应于使用文件模板。
如果这是一个自定义模板,其文件扩展名(模板扩展名)与任何已识别文件类型的已注册模式不匹配,则列表中可能缺少现有文件模板。在这种情况下,您可能希望为现有的已识别文件类型注册相应的模式,或者添加新的文件类型并为此新类型注册相应的模式。有关更多信息,请参阅创建和注册文件类型。
- 在打开的对话框中,在相应字段中键入文件的名称。请注意,您不应键入文件扩展名。
您可以在新文件名之前指定整个目录结构。如果嵌套目录尚不存在,则将创建它们:
如果需要,请指定新模板文件的类型,扩展名和其他参数。例如,如果选择创建HTML文件,则可以创建HTML,HTML4或XHTML文件。换句话说,使用相应的相关文件模板之一。
根据需要指定其他信息。例如,如果相应的文件模板包含此类变量且当前未设置其值,则可能会要求您定义自定义变量的值。
- 单击确定。将在目标位置下创建与所选文件模板对应的新文件。
如果在新文件名之前指定了不存在的子目录的名称,则将在目标目录下创建整个结构:
有时,您可能希望更改自动生成的文件扩展名。为此,请使用 重命名重构 (重构|重命名)。
创建空文件
通常,在开发应用程序时创建的所有文件都是基于模板的。但是,有时您可能想要创建空文件。
创建一个空文件
- 执行以下操作之一:
-
在“ 项目工具”窗口中,选择要在其中创建新文件的目录或包,然后选择“ 文件”| 主菜单上的新功能。
-
右键单击相应的目录或包,然后从上下文菜单中选择“ 新建 ”。
-
按Alt+Insert。
-
- 在“ 新建文件”对话框的“ 输入新文件名”下的字段中,键入文件名和扩展名。
您可以在新文件名之前指定整个目录结构。如果嵌套目录尚不存在,则将创建它们:
-
如果您指定的扩展名与PyCharm识别的任何文件类型都没有关联,则会显示“ 注册新文件类型关联”对话框。
在此对话框中,您可以将扩展名与其中一种可识别的文件类型相关联。为此,请在PyCharm中的“打开匹配文件”下选择文件类型,然后单击“ 确定”。因此,扩展名与指定的文件类型相关联。
- 单击确定。
如果在新文件名之前指定了不存在的子目录的名称,则将在目标目录下创建整个结构:
生成代码
PyCharm提供了多种方法来生成公共代码构造和重复元素,这有助于提高生产力。这些可以是预定义模板,也可以是自定义模板,它们根据上下文,各种包装器和字符自动配对而不同地应用。此外,PyCharm还提供代码完成和Emmet支持。
从用法创建符号
假设您引用的是尚未创建的类或方法。使用PyCharm,您可以借助专门的意图操作轻松地删除缺失的符号 。
要根据使用情况创建符号,请按照以下常规步骤操作
-
输入引用不存在的符号的名称。PyCharm强调了参考。
-
按Alt+Enter,然后从建议列表中选择相应的选项,例如Create class <class name>,或 Add method <method name> to class <class name>。
通过实时模板生成源代码
介绍
本页介绍如何使用实时模板生成源代码 。
使用实时模板,您可以创建Django模板,JavaScript迭代,Zen编码,HTML和XML标记等代码构造。
要浏览可用的实时模板列表,请在“ 设置/首选项”对话框(Ctrl+Alt+S)中打开“ 实时模板”页面。
插入实时模板
-
将插入符号放在需要添加新构造的所需位置。
- 执行以下操作之一:
-
在主菜单上,选择Code | 插入实时模板。
-
按Ctrl+J。
-
键入模板缩写的一些首字母, 以获得建议列表中的匹配缩写。请注意,建议列表可能包含不同模板的相同缩写。
-
-
从建议列表中,选择所需的模板。显示建议列表时,可以通过按下查看插入符号中的项目的快速文档Ctrl+Q。
-
按模板调用键(这可能是Space,Tab或者 Enter,取决于模板定义)。新的代码构造插入指定的位置。
-
如果所选模板已 参数化并需要用户输入,编辑器将进入 模板编辑模式并显示用红框突出显示的第一个输入字段。在此框架中键入您的值,然后按Enter 或Tab完成输入并传递到下一个输入字段。完成最后一个输入字段后,插入符号移动到结构的末尾,编辑器返回常规操作模式。
也可以键入模板缩写,然后按Ctrl+J。
使用环绕模板包装代码片段
本节介绍如何根据环绕模板包装代码片段 。
用实时模板包围代码块
-
在编辑器中,选择要包围的代码段。
- 执行以下操作之一:
-
在主菜单上,选择Code | 环绕使用Live模板...。
-
按Ctrl+Alt+J。
-
-
从建议列表中选择所需的模板。
实现接口或抽象类的方法
如果一个类声明为实现某个抽象类,则必须实现此类的方法。PyCharm为已实现的方法创建存根。
可以实现包含的抽象类和方法的方法raise NotImplementedError
。
要实现所需的方法:
-
在“ 代码”菜单上,单击“ 实现方法”(Ctrl+I)。或者,您可以右键单击类文件中的任意位置,然后单击Generate(Alt+Insert),并选择Implement methods。
-
选择要实施的方法。如有必要,请选中“ 复制JavaDoc”复选框以插入已实现的接口或抽象类的JavaDoc注释。
-
单击确定。
覆盖超类的方法
您可以通过从预定义模板生成必要的代码来覆盖父类的任何方法。PyCharm创建一个包含对超类方法的调用的存根,让开发人员在该方法的主体中提供一些有意义的源代码。
要覆盖超类的方法:
-
在代码菜单上,单击覆盖方法(Ctrl+O)。或者,您可以右键单击类文件中的任意位置,然后单击“ 生成(Alt+Insert)”,并选择“ 替代方法”。
- 选择要覆盖的方法。方法列表不包括已被覆盖的方法,或者无法从当前子类访问的方法。
如有必要,请选中“ 复制JavaDoc”复选框以插入已实现的接口或抽象类的JavaDoc注释。
- 单击“ 确定”并提供方法主体的源代码。
使用标记左侧装订线中重写方法的图标来查看基类的名称,并打开重写的方法声明。
使用特定于语言的构造环绕代码片段
PyCharm根据源代码的语言为周围的代码片段提供各种构造的标准模板。这包括if...else
条件语句,do...while
以及for
循环,组合try...catch...finally
,折叠的区域,XML标签,等等。
围绕一段代码:
-
选择所需的代码片段。
-
在代码菜单上,单击环绕(Ctrl+Alt+T)。
-
从列表中选择所需的环绕声明。
此功能适用于以下语言(上下文):
上下文 | 环绕着 | 例 |
---|---|---|
XML / HTML / XHTML标记 |
|
|
Python语句 |
|
|
Django模板 |
|
|
JavaScript语句 |
|
|
任何代码片段,其中Surround With适用 |
|
展开和删除语句
PyCharm允许您快速从封闭语句中解包或提取表达式。此操作适用于:
-
JavaScript:if ... else,for, while,do ... while control ...
打开或删除语句
-
将插入符号放在要提取或解包的表达式上。
-
选择代码| 在主菜单上打开/删除或按 Ctrl+Shift+Delete。PyCharm显示一个弹出窗口,其中包含当前上下文中可用的所有操作。要提取的语句显示在蓝色背景上,要删除的语句显示在灰色背景上。
-
单击所需操作或使用向上和向下箭头键选择它,然后按 Enter。
包装标签。应用环绕声动态模板的示例
作为应用环绕模板的示例,让我们用标签包装一段XML代码。
包围代码片段
-
打开 所需的文件进行编辑。
-
选择一个代码片段。
-
按调用快捷方式 Ctrl+Alt+J。PyCharm建议使用以下环绕模板:
-
从建议列表中选择标记模板。代码片段被空标记包围:
-
插入符号位于开头的内容中。在开始标记中键入标记名称时,名称将在结束标记中自动复制:
代码完成
本节介绍了各种上下文感知代码完成技术,可以加快编码过程。
基本完成:名称和关键字
基本代码完成可帮助您完成可见范围内的类,方法和关键字的名称。当您调用代码完成时,PyCharm会分析上下文并建议可从当前插入符号位置访问的选项(建议还包括实时模板)。
代码完成可用于自定义文件类型。但是,PyCharm不识别此类文件的结构,并建议选项,无论它们是否适合当前上下文。
如果将基本代码完成应用于参数或变量声明的一部分,PyCharm会根据项类型建议可能的名称列表。
第二次调用基本代码完成显示类,函数,模块和变量的名称。
调用基本完成
-
开始输入名称。
- 按Ctrl+Space或选择代码| 完成| 主菜单中的基本菜单。
下图显示了以下情况的基本代码完成情况:
-
方法:
-
字典:
-
Django模板:
-
- 如果必要,请按Ctrl+Space第二次(或按Ctrl+Alt+Space)。
这显示了类,函数,模块和变量的名称。
基于类型的智能完成
智能代码完成过滤建议列表,仅显示适用于当前上下文的类型。
调用智能完成
-
开始输入。
- 按Ctrl+Shift+Space或选择代码| 完成| 主菜单中的SmartType。
强调了当前背景下最合适的建议。
-
如有必要,请再按Ctrl+Shift+Space一次。
嬉皮完成:根据上下文扩展单词
嬉皮完成是一个完成引擎,可以在可见范围内分析您的文本,并从当前上下文中生成建议。它可以帮助您完成任何当前打开的文件中的任何单词。
将插入符号处的字符串展开为现有单词
- 键入初始字符串并执行以下操作之一:
-
按Alt+/或选择代码| 完成| 循环展开Word以在插入符号之前搜索匹配的单词。
-
按Shift+Alt+/或选择代码| 完成| 循环展开Word(向后) 以在插入符号和其他打开文件之后搜索匹配的单词。
-
-
接受建议,或按住Alt键并一直按下,/直到找到所需的单词。
Postfix代码完成
Postfix代码完成可帮助您在编写代码时减少向后插入符号跳转。它允许您根据在点,表达式类型及其上下文之后键入的后缀将已键入的表达式转换为另一个表达式。
使用后缀转换语句
- 键入表达式,然后在点后键入后缀,例如
.if
:function m(arg) { arg.if }
初始表达式包含一个
if
语句:function m(arg) { if (arg) { } }
要禁用某些后缀完成模板,请在“ 设置/首选项”对话框(Ctrl+Alt+S)中选择“ 编辑器”| 一般| 后缀完成。您也可以选择你要使用扩展后缀模板,键: Tab,Space,或Enter。
您可以编辑预定义的后缀模板,例如,用较短的键替换长键,或者展开它适用的表达式类型列表。
配置代码完成设置
配置完成选项
-
在“ 设置/首选项”对话框(Ctrl+Alt+S)中,选择“ 编辑器”| 一般| 代码完成。
- 请执行下列操作:
- 要自动显示建议列表,请选中“ 键入时显示建议”复选框。如果清除该复选框,则必须通过按下Ctrl+Space基本完成或 Ctrl+Shift+Space智能完成来显式调用代码完成。
您还可以选择在只有一个选项时自动插入建议:在自动插入单个建议下选择完成类型。
- 要排序的字母顺序的建议,而不是按相关性排序它们,选择排序建议按字母顺序 复选框。
您还可以通过单击或分别位于建议列表的右下角来切换这些模式。
-
如果您在建议完成选项时需要考虑案例,请选择匹配案例 并选择是仅匹配首字母大小写还是匹配所有字母大小写。
-
如果你想在文档弹出式窗口中,你把它的滚动的建议列表中每个项目自动显示,选择在显示文档弹出选项。在右侧的字段中,指定延迟(以毫秒为单位),之后应显示弹出窗口。
- 要自动显示建议列表,请选中“ 键入时显示建议”复选框。如果清除该复选框,则必须通过按下Ctrl+Space基本完成或 Ctrl+Shift+Space智能完成来显式调用代码完成。
排序图标仅在列表很长时出现,并且不显示仅包含少量条目的列表。
完成提示和技巧
缩小建议清单
您可以通过键入单词的任何部分(甚至是中间某处的字符)或在点分隔符后调用代码完成来缩小建议列表的范围。PyCharm将显示包含您在任何位置输入的字符的建议。
这使得不必使用通配符:
如果是CamelCase或snake_case名称,请仅键入首字母。PyCharm自动识别并匹配首字母。
接受建议
您可以通过以下方式之一接受列表中的建议:
-
按Enter或双击列表项将其插入插入符号的左侧。
-
按下Tab以从插入符号右侧替换字符。
-
使用Ctrl+Shift+Enter使当前代码构造语法正确(平衡括弧,加括号缺失和分号等)
您还可以使用特定键插入所选的完成建议:在Settings / Preferences对话框中(Ctrl+Alt+S)选择Editor | 一般| 代码完成并通过按空格,点或其他上下文相关键选项选择 插入所选建议。这些键取决于语言,您的上下文等。
虽然此设置可帮助您节省时间,但将其打开可能会导致项目意外插入。
查看参考
查看代码层次结构
从建议列表中选择条目后,您可以查看代码层次结构:
-
Ctrl+H:视图类型层次结构
-
Ctrl+Shift+H:查看方法层次结构。
故障排除
如果代码完成不起作用,可能是由于以下原因之一:
-
在省电模式是(文件|省电模式)。打开它可以通过消除后台操作(包括错误突出显示,动态检查和代码完成)来最大限度地降低笔记本电脑的功耗。
-
您的文件不驻留在内容根目录中,因此它不会获得代码完成所需的必需类定义和资源。
-
包含要在完成建议列表中显示的类和函数的文件将标记为纯文本文件。
-
包含要在完成建议列表中显示的函数的外部库不会添加为依赖项或全局库。
查看源代码的结构和层次结构
此功能在PyCharm 的教育版中不可用。
PyCharm使您可以在“层次结构”工具窗口中检查类,方法和调用的层次结构,并在“结构”工具窗口中浏览源文件的结构。
-
“ 视图”菜单中提供了“ 层次结构”和“ 结构”工具窗口。
-
只有在构建层次结构时,“ 层次结构”工具窗口才可用。
-
层次结构在“ 导航”菜单中构建。
查看层次结构
此功能在PyCharm 的教育版中不可用。
PyCharm使您可以在“层次结构”工具窗口中检查类,方法和调用的层次结构,并在“结构”工具窗口中浏览源文件的结构。建,层次可被带在仔细检查层次工具窗口。
显示“层次结构”工具窗口
当没有要显示的层次结构时,不显示层次结构工具窗口。您必须首先构建层次结构。
请参阅Building Class Hierarchy 以了解如何构建层次结构。
要打开“层次结构”工具窗口,请执行以下操作之一
-
在主菜单上,选择“ 查看”| 工具窗口| 层次结构。
-
使用Alt+8键盘快捷方式
在“层次结构”工具窗口的选项卡之间导航
执行以下操作之一:
-
右键单击当前显示的选项卡,然后在上下文菜单中选择“ 选择下一个选项卡 / 选择上一个选项卡 ”。
-
使用Alt+Right和Alt+Left键盘快捷键。
-
单击当前显示的选项卡,然后选择要显示的下一个选项卡。
在视图之间切换
在视图之间切换意味着显示升序或降序层次结构(被调用者与调用者方法,父类与子类等)。要在视图之间切换,请使用“层次结构”工具窗口的工具栏:
-
单击以显示调用方法或超类型。
-
单击以显示被调用方法或子类型。
查看源文件的结构
此功能在PyCharm 的教育版中不可用。
基本
您可以使用“ 结构”工具窗口或“ 结构”弹出窗口检查当前在编辑器中打开的文件 的结构。
默认情况下,PyCharm显示当前文件中显示的所有类,方法等。
要显示其他成员,请单击“ 结构”工具窗口工具栏上的相应按钮。
您还可以在“ 项目”工具窗口中显示类成员。
查看文件的结构
要查看文件结构,请执行以下操作之一
查看成员
要显示类字段
-
单击“结构”工具窗口的工具栏上。
显示继承的成员
-
单击“结构”工具窗口的工具栏上。
默认情况下,PyCharm仅显示当前类中定义的方法,常量和字段。如果显示,继承的成员将显示为灰色。
要在“项目”工具窗口中显示类成员
-
在项目 工具窗口标题栏的上下文菜单上 打开“ 显示成员”项。如果启用此选项,则树中包含类的文件将变为节点。展开此类节点时,将显示包含的类及其字段,方法和所选项目的其他成员。
构建类层次结构
此功能在PyCharm 的教育版中不可用。
您可以在“ 层次结构”工具窗口中浏览所选类的父类和子类的 层次结构。
请注意,只有在构建类层次结构时,“层次结构”工具窗口才可用,如下所述。
构建类的层次结构
-
在编辑器中打开带有所需类的文件,并将插入符放在类的任何位置或类名上。
-
在主菜单上,选择“ 导航”| 键入层次结构或按Ctrl+H。
分析重复
此功能仅在专业版中受支持。此版本是商业版,它提供了一套出色的工具和功能:有关详细信息,请参阅比较矩阵。
概观
PyCharm可帮助您在特定范围内查找重复的代码块。此范围可以是单个文件,项目,模块或自定义范围。分析结果显示在“ 重复项”工具窗口的专用选项卡中。
搜索重复项
搜索重复项
-
在主菜单上,选择Code | 找到重复项。
- 在“ 指定代码复制分析范围”对话框中,指定分析范围(整个项目,当前文件,未提交的文件(对于版本控制下的项目)或某些自定义范围)。此外,您还可以将测试源包含在分析中。
准备好后,单击“ 确定”。
- 在“ 代码复制分析设置”对话框中,执行以下操作:
-
选择语言以执行分析。
- 对于每种语言,请检查选项以定义分析的首选项。
例如,您可以选择请求相同匹配的代码片段被视为重复,或指定某个限制,低于该限制,代码构造不会被视为重复(以避免报告
if
源代码中的每个构造)。
-
- 在“ 重复项”工具窗口中,浏览搜索结果。
-
在工具窗口的左窗格中查看重复项列表。
-
查看右窗格中找到的重复项之间的差异。使用箭头按钮将选定的副本放在差异查看器的其中一个部分中,并比较代码的片段。
-
使用重复上下文菜单的“ 跳转到源”或“ 显示源”命令导航到编辑器中的重复项。
-
分析外部堆栈跟踪
概观
您可能希望分析其他人(例如,QA工程师)收到的异常,或者调查死锁或挂起问题。与调试模式或运行单元测试时遇到的异常不同,这些异常没有帮助您导航到源代码中相应位置的链接。
使用PyCharm,您只需复制异常或完整的线程转储,将其粘贴到Stacktrace Analyzer,浏览信息并导航到相应的源代码。
分析外部堆栈跟踪
分析外部堆栈跟踪或线程转储
-
在主菜单上,选择。 工具| 分析Stacktrace。
-
在打开的Analyze Stacktrace对话框中,将外部堆栈跟踪或线程转储粘贴到 Put a thread dump here: text区域。
-
单击确定。堆栈跟踪显示在“ 运行”工具窗口中。
代码检查
代码分析基础知识
PyCharm具有强大,快速和灵活的静态代码分析功能。它检测语言和运行时错误,建议更正和改进。
PyCharm通过对代码应用检查来执行代码分析。Python和其他支持的语言存在大量代码检查。
检查不仅检测编译错误,还检测不同的代码低效率。每当你有一些无法访问的代码,未使用的代码,非本地化的字符串,未解决的方法,内存泄漏甚至拼写问题时 - 你会很快找到它。
PyCharm的代码分析可灵活配置。您可以 启用/禁用每个代码检查并 更改其严重性,使用自定义检查集创建 配置文件,在不同范围内应用不同的检查 , 抑制特定代码段中的检查等。
分析可以通过以下几种方式进行:
- 默认情况下,PyCharm会分析所有打开的文件,并在编辑器中突出显示所有检测到的代码问题。在编辑器的右侧,您可以看到整个文件的分析状态(右上角的图标)。
检测到错误时,此图标为; 如果发出警告,则是; 如果一切正确,图标就是。
-
或者,您可以 在指定范围的批量模式下运行代码分析, 该范围可以与整个项目一样大。
-
如有必要,您可以 在特定范围内应用单个代码检查。
对于大多数检测到的代码问题,PyCharm提供 快速修复建议。您可以通过按下从一个突出显示的行导航到另一个突出显示的行来快速查看文件中的错误 F2Shift+F2。
有关更多信息和过程描述,请参阅配置检查严重性。
检查概况
当您检查代码时,您可以告诉PyCharm您想要搜索哪些类型的问题并获取报告。这种配置可以保留为 检查配置文件。
检查配置文件定义了要寻找的问题类型,即启用/禁用哪些代码检查 以及 这些检查的严重性。配置文件可在“ 检查设置”页面中进行配置。
要设置当前检查配置文件(用于在编辑器中进行动态代码分析的配置文件),只需在“ 检查设置”页面中选择它并应用更改。当你执行代码分析或 执行一个检查,你可以指定要使用每次运行的配置文件。
检查配置文件可适用于整个IDE或特定项目:
-
通过VCS为团队成员共享和访问项目配置文件。它们存储在项目目录中:
<project>/.idea/inspectionProfiles
。 -
IDE配置文件 仅供个人使用,并存储在本地目录下的XML文件中
USER_HOME/.<PyCharm version>/config/inspection
。
PyCharm带有以下预定义的检查配置文件:
-
默认值:此本地(IDE级别)配置文件供个人使用,适用于所有项目,并本地存储在
Default.xml
目录下的USER_HOME/.<PyCharm version>/config/inspection
文件中。 -
项目默认值:创建新项目时, 将从模板项目的设置中复制项目默认配置文件 。此配置文件是共享的,适用于当前项目。创建项目后,对项目默认配置文件的任何修改都将被忽略不计地传递给任何其他项目。 在“ 模板项目”设置中修改 “ 项目默认”配置文件的 设置时
,更改的配置文件将应用于所有新创建的项目,但现有项目不会受到影响,因为他们已经拥有此配置文件的副本。
项目默认配置文件存储在目录中的Project_Default.xml
文件中<project>/.idea/inspectionProfiles
。
可以根据需要拥有尽可能多的检查配置文件。有两种创建新配置文件的方法:您可以添加新配置文件作为项目默认配置文件的副本或 复制当前选定的配置文件。新创建的配置文件存储在XML文件中,具体取决于基本配置文件的类型。
该<profile_name>.xml
代表检查轮廓文件显示,每当一些修改配置文件完成和应用。这些文件仅存储与默认配置文件的差异。
在计算机之间同步配置文件
如果检查配置文件是特定于项目的,则会自动与项目同步。在签出后打开该项目的每个用户都将启用相同的检查配置文件。
如果使用IDE默认检查配置文件,则可以通过与PyCharm捆绑在一起的Settings Repository插件在多台计算机之间进行同步 。这样做,文件存储在 USER_HOME/.<PyCharm version>/config/inspection/<profile_name>.xml
。
请注意,全局配置文件可能具有不同的名称。将当前项目配置文件复制到全局级别(单击“ 管理 ”按钮并选择“ 复制为全局”)并根据需要调用它。
然后,在主菜单上,选择“ 文件”| 新项目的设置,并选择此全局配置文件作为所有新项目的默认配置文件。现在,默认情况下,所有新创建的项目都将使用此全局配置文件,并且此全局配置文件将通过Settings Repository插件在各种计算机之间同步。
检查严重程度
检查严重性表示检查检测到的代码问题对项目的影响程度,并确定如何在编辑器中突出显示检测到的问题。默认情况下,每次检查都具有以下严重性级别之一:
-
服务器问题
-
错字
-
没有突出显示,只有修复
-
弱警告
-
警告
-
错误
您可以增加或减少每次检查的严重性级别。也就是说,您可以强制PyCharm显示一些警告,如错误或弱警告。以类似的方式,最初被视为弱警告的内容可以显示为警告或错误,或者仅显示为信息。
您还可以配置用于突出显示每个严重性级别的颜色和字体样式。此外,您可以创建自定义严重性级别并将其设置为特定检查。
如有必要,您可以为不同范围内的相同检查设置不同的严重性级别 。
上述检查的所有修改都保存在检查设置中 当前选择的 检查配置文件中, 并在使用此配置文件时应用。
检查范围
默认情况下,所有启用的代码检查都适用于所有项目文件。如有必要,您可以针对不同的范围单独配置每个代码检查(启用/禁用, 更改其严重性级别和选项) 。与任何其他检查设置一样,此类配置将作为特定配置文件的一部分进行保存和应用 。
当检查具有与不同范围相关联的不同配置时,可能存在复杂的情况。当在属于某些或所有这些范围的文件中执行此类检查时,将应用优先级最高的范围特定配置的设置。优先级由检查设置中检查范围特定配置的相对位置定义 :最高配置具有最高优先级。在其他任何地方的配置总是具有最低的优先级。
有关更多信息和过程描述,请参阅配置不同范围的检查。
代码检查的示例
在“ 检查”页面中,所有检查都按类别分组。代码分析涵盖的最常见任务是:
-
找到死代码。
-
检测性能问题。
-
改善代码结构和可维护性。
-
符合编码指南和标准。
-
符合规格。
找到死代码
PyCharm在编辑器中突出了所谓的死代码。这是在应用程序运行时期间从未执行的代码。也许,您甚至不需要在项目中使用这部分代码。根据情况,此类代码可能被视为错误或冗余。无论如何,它会降低应用程序性能并使维护过程复杂化。这是一个例子。
突出显示未使用的声明
PyCharm还能够通过未使用的声明检查立即突出显示未使用的局部变量。默认情况下,PyCharm会忽略以下内容突出显示所有未使用的局部变量:
-
元组拆包中使用的变量
-
Lambda参数
-
范围迭代变量
如果您希望收到任何这些类型的通知,请打开编辑器| 在项目设置/首选项中检查,在Python 节点下选择未使用的本地,并取消选择选项中的相应复选框。以下示例说明了元组解包中未使用变量的代码检查警告。
未解决的参考文献
此检查可以检测未解析的参考,并使用红色曲线突出显示它们。PyCharm意图操作建议快速修复源代码中未解析的引用。有关更多详细信息,请参阅解析引用。
Python检查示例
在“设置”对话框的“ 检查”页面中查找各种代码检查的说明和示例 。在本节中,我们将考虑几个最突出的例子。特别是,PyCharm报道
- 代码与当前的Python解释器版本不兼容:
请注意,您可以在检查设置中更改版本范围。
-
未解决的参考文献:
-
字典中的重复键:
-
死代码:
-
未使用的变量:
解决问题
介绍
默认情况下,PyCharm会分析所有打开文件中的代码,并突出显示检测到的代码问题。您可以通过应用快速修复程序立即解决大多数问题。
如果您在更大范围的源文件中执行代码分析或 执行单个检查,PyCharm会在检查结果工具窗口中显示检测到的代码问题。在此窗口中选择特定问题时,其报告将显示在窗口的右侧。
如果有问题的可用修复程序,PyCharm会通过以下方式通知它:
-
“ 检查结果”工具窗口的工具栏上将显示“ 应用快速修复” 按钮。
-
可用的修复程序显示在报告的可选问题解决方案字段中。
-
可用的修复程序显示在问题的上下文菜单中。
如果没有可用的修复程序,则唯一的选择是手动修复问题。
请注意以下事项:
-
要在编辑器中显示问题的源代码,在“ 检查结果”工具窗口中选择它时 ,请将“ 自动滚动” 切换为“源”按钮。
解决问题
修复代码检查报告的问题
在“ 检查结果工具”窗口中,选择您感兴趣的代码问题,然后执行以下操作之一:
-
如果PyCharm建议如上所述对问题进行任何修复,您可以使用其中一个立即解决问题。
-
如果未建议解决方案,请使用上下文菜单中的“ 跳转到源”命令并手动修复问题。