Pycharm TabError: 缩进中使用了制表符和空格不一致。

9
在Pycharm中,我一直遇到这个错误:
TabError: inconsistent use of tabs and spaces in indentation

我知道这是一个关于制表符/空格的问题。

我想要:

if len(myresults)==0:
    print("TEST")

每次我打字时,在输入每一行后按回车键,实际上我输入的是:
if len(myresults)==0:
        print("TEST")

导致这个错误。我该怎么解决?以下是我的pycharm设置: Pycharm设置 我可能错过了一些明显的东西,但我无法找到它。

1
你尝试过取消选中“使用制表符”框吗?或者如果你想保持选中状态,可以尝试取消插件“设置->插件->EditorConfig”(参见https://intellij-support.jetbrains.com/hc/en-us/community/posts/206404989-Switch-indentation-from-spaces-to-tabs,该方法对于Pycharm也适用)。 - Eskapp
6个回答

5

尝试以下操作:

  1. 在"设置|编辑器|代码风格"中,尝试禁用"检测并使用现有文件缩进进行编辑",以防启用该选项(默认情况下启用)。注意:可能需要重新打开编辑器中的文件。
  2. 是否在该文件路径下有任何.editorconfig文件?.editorconfig文件的设置优先级高于您的IDE设置。

不幸的是,没有成功。 - Dillsac
1
一定有某些东西覆盖了制表符和缩进设置。尝试将方案设置为项目或将代码样式恢复为默认值。(这些都是非常非常渺茫的可能性) - Nipun Sampath
1
我通过重新格式化整个文件来解决了它...我的手很疼! - Dillsac

3

进入 设置 --> 编辑器 --> 代码风格 --> Python --> 制表符和缩进

这里勾选 使用 Tab 字符智能 Tab 复选框

这对我有用。


2

我的建议:

  • "设置 | 编辑器 | 代码样式" -- 禁用 "检测并使用现有文件的缩进进行编辑" (如@Nipun Sampath所建议的)

再加上:

  • "设置 | 编辑器 | 代码样式 | Python" -- 禁用 "使用制表符"

对于重新格式化文件:Ctrl+Alt+L -> 对所选文本或整个文件执行 '代码清理'(取决于需要哪种操作)。


1
我正在使用Pycharm和Jupyter Notebook,这两个工具都遇到了同样的问题。我无法通过“转换缩进”来解决它,所以我卸载了一些我在程序中使用的模块并重新安装它们,这对我有用。

0
我正在使用Pycharm 2019.1。对我来说,每当我按Enter键换行时,这个错误就会不断地出现,并且我必须手动重新编写每一个缩进,以消除指示错误的红色下划线。我通过将完整的代码分析到另一个文本编辑器(在我的情况下是Kate编辑器,但您可以使用另一个)中来解决它。我验证了一些缩进是用[TAB]编写的,而大部分是用四个简单的空格编写的。所以我将所有用[TAB]编写的缩进替换为用四个空格编写的缩进(大多数编辑器都使用[Ctrl R]快捷方式进行替换)...voilà。一切都工作得很好。 注意:我无法在Pycharm编辑器本身中进行替换。显然,当您尝试用[Ctrl R]替换时,pycharm编辑器不能区分四个空格的[Tab]。 希望它能帮助未来的用户。

0
我在Pycharm中遇到了同样的问题,解决方法是: 使用键盘上的Tab键将所有空格替换为制表符!

嗨Immen,欢迎来到SO。我认为你的评论并没有从根本上解决问题。但这正是提问者所要求的。 - tuergeist
答案并不能解决问题的普遍性。 - tuergeist

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接