我们愿意/被迫为大学开发一个小型的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开始标记“返回”“声明。
致以最诚挚的问候,
玛丽安
答案 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 的问题。