Поэтому, когда я когда-либо пытался отладить какой-либо скрипт 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"
}
]
}






Ошибка атрибута обычно означает, что какой-либо объект, с которым вы работаете, на самом деле отсутствует. Это может произойти из-за того, что что-то произошло до или после вашего звонка.
В случае вашего единственного оператора печати единственное, что я могу придумать, это, возможно, он имеет что-то такое с двойными кавычками ... На самом деле не имеет смысла, что двойные кавычки могут вызвать это, но кто знает.
что происходит, когда вы пытаетесь
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 также не может решить, какой терминал выводить, но в то же время вы получаете это только во время отладки, поэтому ...
Теперь я увидел в конфигурации флаг отсутствия отладки, но это было для приложения фляги.
это происходит с каждым файлом или только с этим файлом? Что произойдет, если вы создадите новый файл с нуля с единственным оператором печати.
Также на снимке экрана показаны некоторые данные в локальных переменных в разделе исключение. Можете ли вы опубликовать эти данные?
Очень легко воспроизвести В консоли отладки введите 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
Возникла проблема github.com/Microsoft/vscode/issues/60436 Это происходит на 1 ПК, но не на другом
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
он все еще вылетает, есть идеи, как я могу проверить, пытается ли он записать в файл? если вместо печати я помещаю, например, input («я рухну!»), тогда AttributeError говорит, что объект «Nonetype» не имеет атрибута «readline», плюс, это происходит только тогда, когда я его отлаживаю