Ошибка отладчика Python кода VS с операторами печати

Поэтому, когда я когда-либо пытался отладить какой-либо скрипт Python в коде VS, и этот скрипт имеет оператор печати или ввода, он выдает сбой и выдает мне «AttributeError», в котором говорится, что объект «NoneType» не имеет атрибута «запись», любые идеи, почему это происходит ? я не могу найти информацию об этом в гугле вот скриншот в ошибке: Ссылка на скриншот а также вот мой файл конфигурации:

{
// Use IntelliSense para saber los atributos posibles.
// Mantenga el puntero para ver las descripciones de los existentes atributos 
// Para más información, visite: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
    {
        "name": "Python: Current File (Integrated Terminal)",
        "type": "python",
        "request": "launch",
        "stopOnEntry": true,
        "program": "${file}",
        "console": "integratedTerminal"
    },
    {
        "name": "Python: Attach",
        "type": "python",
        "request": "attach",
        "port": 5678,
        "host": "localhost"
    },
    {
        "name": "Python: Django",
        "type": "python",
        "request": "launch",
        "program": "${workspaceFolder}/manage.py",
        "console": "integratedTerminal",
        "args": [
            "runserver",
            "--noreload",
            "--nothreading"
        ],
        "django": true
    },
    {
        "name": "Python: Flask",
        "type": "python",
        "request": "launch",
        "module": "flask",
        "env": {
            "FLASK_APP": "app.py"
        },
        "args": [
            "run",
            "--no-debugger",
            "--no-reload"
        ],
        "jinja": true
    },
    {
        "name": "Python: Current File (External Terminal)",
        "type": "python",
        "request": "launch",
        "program": "${file}",
        "console": "externalTerminal"
    }
]

}

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
4 445
2

Ответы 2

Ошибка атрибута обычно означает, что какой-либо объект, с которым вы работаете, на самом деле отсутствует. Это может произойти из-за того, что что-то произошло до или после вашего звонка.

В случае вашего единственного оператора печати единственное, что я могу придумать, это, возможно, он имеет что-то такое с двойными кавычками ... На самом деле не имеет смысла, что двойные кавычки могут вызвать это, но кто знает.

что происходит, когда вы пытаетесь

print('I will crash!!!')

Если это все еще не удается, я бы сказал, что, возможно, vs пытается записать в файл, конфигурацию, журнал, консоль или что-то еще и сталкивается с проблемами разрешения.

РЕДАКТИРОВАТЬ Посмотрев closesr на ваши файлы конфигурации, я вижу, что у вас есть два, которые начинаются с

"name": "Python: Current File ....

Итак, я переписал ваш конфигурационный файл, он по-прежнему включает определенные файлы, которые были названы, и их конфигурации, но я удалил одну из текущих файловых записей и сделал ее базовой.

{
// Use IntelliSense para saber los atributos posibles.
// Mantenga el puntero para ver las descripciones de los existentes atributos 
// Para más información, visite: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
    {
        "name": "Python: Current File (External Terminal)",
        "type": "python",
        "request": "launch",
        "program": "${file}",
        "console": "externalTerminal"
    },
    {
        "name": "Python: Attach",
        "type": "python",
        "request": "attach",
        "port": 5678,
        "host": "localhost"
    },
    {
        "name": "Python: Django",
        "type": "python",
        "request": "launch",
        "program": "${workspaceFolder}/manage.py",
        "console": "integratedTerminal",
        "args": [
            "runserver",
            "--noreload",
            "--nothreading"
        ],
        "django": true
    },
    {
        "name": "Python: Flask",
        "type": "python",
        "request": "launch",
        "module": "flask",
        "env": {
            "FLASK_APP": "app.py"
        },
        "args": [
            "run",
            "--no-debugger",
            "--no-reload"
        ],
        "jinja": true
    }
]
}

Я настроил его для использования внешней консоли (стандартный Windows cmd). Если вы хотите использовать консоль vs, замените

{
    "name": "Python: Current File (External Terminal)",
    "type": "python",
    "request": "launch",
    "program": "${file}",
    "console": "externalTerminal"
},

с участием

{
    "name": "Python: Current File (Integrated Terminal)",
    "type": "python",
    "request": "launch",
    "stopOnEntry": true,
    "program": "${file}",
    "console": "integratedTerminal"
},

НЕ забудьте сначала сохранить копию вашего старого файла конфигурации. Таким образом, если VS сходит с ума от ручного изменения этого файла, вы всегда можете вернуться назад.

Я ищу возможность того, что VS также не может решить, какой терминал выводить, но в то же время вы получаете это только во время отладки, поэтому ...

Теперь я увидел в конфигурации флаг отсутствия отладки, но это было для приложения фляги.

он все еще вылетает, есть идеи, как я могу проверить, пытается ли он записать в файл? если вместо печати я помещаю, например, input («я рухну!»), тогда AttributeError говорит, что объект «Nonetype» не имеет атрибута «readline», плюс, это происходит только тогда, когда я его отлаживаю

John Jairo Gaelano Rivero 23.09.2018 05:40

это происходит с каждым файлом или только с этим файлом? Что произойдет, если вы создадите новый файл с нуля с единственным оператором печати.

Riv 23.09.2018 06:08

Также на снимке экрана показаны некоторые данные в локальных переменных в разделе исключение. Можете ли вы опубликовать эти данные?

Riv 23.09.2018 06:10

Очень легко воспроизвести В консоли отладки введите print ("jnc") print ("jnc") AttributeError ("Объект 'NoneType' не имеет атрибута 'write'",) Это происходит на моем последнем обновленном VSCODE версии Windows 10: 1.28.0 (настройка системы) Фиксация: 431ef9da3cf88a7e164f9d33bf62695e07c6c2a9 Дата: 2018-10-05T14: 58: 53.203Z Электронный: 2.0.9 Chrome: 61.0.3163.100 Node.js: 8.9.3 V8: 6.1.534.41 Архитектура: x64

Jayanta 09.10.2018 19:24

Возникла проблема github.com/Microsoft/vscode/issues/60436 Это происходит на 1 ПК, но не на другом

Jayanta 10.10.2018 07:47

VSCODE у меня работает нормально

а) Установите VSCODE или обновитесь до версии 1.28.1 б) ОБНОВЛЕНИЕ расширения Python

Если вы столкнулись с какой-либо проблемой, например, тайм-аутом и т. д., Прочтите https://github.com/Microsoft/vscode-python/issues/2410 очень осторожно

Отредактируйте settings.json расширения python а) Запрещать Терминал: активировать среду Активируйте среду Python в терминале, созданном с помощью расширения.

б) включить Терминал: выполнить в файловом каталоге При выполнении файла в терминале, следует ли использовать команду execute в каталоге файла вместо текущей открытой папки.

c) Удалите pythonW и поместите python в Путь Python Путь к Python, вы можете использовать пользовательскую версию Python, изменив этот параметр, чтобы включить полный путь.

Все выше отhttps://github.com/Microsoft/vscode-python/issues/2410

Несмотря на счастливый конец, я могу предвидеть будущее нестабильных релизов для прекрасного VSCODE и даже лучшего расширения Python

Другие вопросы по теме