Ошибка: Заявление ожидается, найдено 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 ""
Пихарм начал отмечать "возврат" "".
С наилучшими пожеланиями,
Мэриан
7 ответов
Проблема решена путем игнорирования ошибки. Скопировано в другой редактор и ничего здесь. Похоже, что это ошибка пихарма.
С наилучшими пожеланиями,
Мэриан
Если вы столкнулись с этой проблемой в PyCharm 2021.2, добавьте следующую строку
-ea
в помощь | Изменить пользовательские параметры виртуальной машины ... или в
<PyCharm_installation_folder>/bin/pycharm.vmoptions
(или
pycharm64.vmoptions
). Перезапустите PyCharm, и парсер должен работать правильно.
См. Соответствующий билет в системе отслеживания ошибок PyCharm https://youtrack.jetbrains.com/issue/PY-49970.
Моя проблема была вызвана несоответствием отступов. Большая часть документа была заполнена пробелами, но было скопировано несколько вкладок, которые привели к ошибке Py:DEDENT. Замена вкладок пробелами исправила ошибку.
Я также царапал свою голову в течение длительного периода времени и наконец понял это.
Дело в том, что за пределами сферы действия "Пичарм не узнал определенного персонажа"
Когда вы пишете это:
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
никогда не побеспокою тебя
Была такая же проблема после обновления моей профессиональной оснастки pycharm на Ubuntu 21.*. Исправлена переустановка pycharm с помощью jetbrains-toolbox.
В PyCharm 2021.2.2 Professional Edition я вижу ошибку в следующем случае
defthe_fun_one(cls):
cls.some_module.some_function()
def the_fun_two(cls):
cls.some_other_module.some_other_function()
Я вижу ожидаемое заявление, нашел Py:DEDENT в строке
cls.some_other_module.some_other_function()
когда предыдущая функция не имела определения, не разделенного опечаткой пробела, например
defthe_fun_one(cls):
- Пункт списка
У меня возникла проблема, когда в моем файле был дополнительный объект -> return. Значит, это была синтаксическая ошибка.