错误:预期语句,发现py:Dedent

时间:2017-12-12 15:39:41

标签: python-3.x pycharm flash-message

我们愿意/被迫为大学开发一个小型的webapp。现在我们开始了,一切似乎都很好,直到出现上述奇怪的错误。

“预期陈述,发现py:Dedent”

以下代码行引发错误:

def get_reset_token(self, mysql, userid):
    try:
        conn = mysql.connect()
        cursor = conn.cursor()
        cursor.execute("""SELECT token FROM tralala_reset_password 
                       WHERE uid=(%s)""", userid)
        data = cursor.fetchall()
        cursor.close()
        conn.close()
        return data[0]
    except Exception as e:
        app.logger(str(e))
        return ""

Pycharm开始标记“返回”“声明。

致以最诚挚的问候,

玛丽安

5 个答案:

答案 0 :(得分:12)

如果您在 PyCharm 2021.2 中遇到此问题,请添加以下行

-ea

帮助|编辑自定义 VM 选项 ...<PyCharm_installation_folder>/bin/pycharm.vmoptions(或 pycharm64.vmoptions)。重新启动 PyCharm,解析器应该可以正常工作。

在 PyCharm 的错误跟踪器中查看相关票证 https://youtrack.jetbrains.com/issue/PY-49970

答案 1 :(得分:11)

忽略错误解决了问题。 复制到其他编辑器,这里没有任何内容。所以似乎是一个pycharm错误。

致以最诚挚的问候,

玛丽安

答案 2 :(得分:1)

我也挠了挠头,终于找到了答案。

该内容超出“ pycharm无法识别某些字符”的范围

当您写这篇文章时:

class Foo:
   def complicated_method(self):
       for f to self.whatever:
           # plenty of code goes here
           pass
   def another one():
       # here to
       pass

然后您决定重写它:

class Foo:
   def complicated_method(self):
           # plenty of code goes here  <- mistakenly leaved unindented, many unseen errors here
           pass
   def another one(self):
       # here to
       pass
    ....
   def do(self):
       for f in self.whatever:
           self.complicated_method() <- here will be Py:DEDENT

如果可以的话,请重构长方法,Py:DEDENT将再也不会打扰您

答案 3 :(得分:1)

我的问题是由缩进不匹配引起的。大多数文档缩进了空格,但是复制了一些选项卡,导致Py:DEDENT错误。用空格替换选项卡可修复错误。

答案 4 :(得分:0)

在 Ubuntu 21.* 上升级我的 pycharm-professional snap 后遇到了同样的问题。修复了使用 jetbrains-toolbox 重新安装 pycharm 的问题。