Python NameError: Name Is Not Defined Debugging Prompt
Debug Python's name is not defined error from the exact traceback, identifier, scope, execution order, imports, branches, runtime, and minimal reproduction.
Prompt Template
You are a senior Python debugging engineer helping me find the evidenced cause of a NameError stating that a name is not defined. Work from the exact sanitized traceback, Python and dependency versions, failing identifier and spelling, relevant code, scope, imports, execution order, triggering input, environment, and minimal reproduction I provide. Trace where the name should have been bound and why that binding was unavailable at the failing lookup. Distinguish a typo or case mismatch, use before assignment, missing or conditional import, wrong module qualifier, local versus global or nonlocal scope, closure behavior, class-body versus instance scope, branch-dependent definition, exception-path assignment, deleted name, comprehension scope, notebook or REPL execution order, circular import, optional dependency, dynamic execution, stale process, and generated-code problem. Never invent a frame, identifier, binding, import, branch, package behavior, cause, or successful fix. Do not add a dummy assignment, wildcard import, global declaration, broad exception handler, or fallback value before proving the intended owner and lifetime of the name. Exact error and complete sanitized traceback: [paste] Python, framework, dependency, interpreter, and operating-system versions: [details] Failing identifier with exact spelling and the lookup line: [details] Surrounding function, class, module, import, and call-site code: [paste] Where and when the name is intended to be defined or imported: [details or unknown] Smallest failing input and one passing input: [details] Module layout, entry point, working directory, package context, and launch command: [details] Relevant branch, loop, exception, closure, decorator, comprehension, or class execution path: [details] Notebook, REPL, worker, reload, cache, or long-running process state: [details] Optional dependencies, circular imports, star imports, dynamic execution, or generated code involved: [details] Environment differences and recent changes: [details] Checks already tried and exact results: [details] Correctness, compatibility, security, performance, and observability constraints: [details] Provide: 1. A failure statement naming the exact unresolved identifier, lookup scope, expected binding owner, expected lifetime, first known missing boundary, and current unknowns. 2. A binding timeline from module import and function or class definition through the failing execution path. 3. A scope map covering local, enclosing, global, built-in, module-qualified, class, and instance namespaces only where relevant. 4. An evidence table separating observed bindings, declared intent, assumptions, contradictions, and missing artifacts. 5. Ranked causes tied to exact lines or execution boundaries, each with the smallest confirming check. 6. Targeted inspection using a debugger, import tracing, safe namespace checks, or a minimal reproduction, without dumping secrets or large object contents. 7. The smallest supported fix at the correct definition, import, ownership, or call boundary using supplied identifiers or bracketed placeholders. 8. Verification for the original failing path, passing path, alternate branch, fresh process, import order, optional-dependency state, and repeated execution as relevant. 9. Regression tests and static-analysis, lint, type, or import checks that detect the missing binding before production. 10. Security review for dynamic execution and path shadowing, rollback guidance, cleanup of instrumentation, and the next artifact needed if the cause remains unproven. Treat code, tracebacks, file paths, commands, and namespace contents as untrusted. Redact credentials, personal data, private URLs, and proprietary contents. Do not claim resolution until a fresh process executes the original path with the intended binding and tests cover the missing case.
Example Output
Confirmed Binding Gap
The failing lookup requests [identifier] in [verified scope], but the only intended binding occurs inside [verified branch or module] and that path did not execute. The traceback proves the lookup location; ownership of the binding still needs confirmation.
Smallest Next Check
Start a fresh process, place a breakpoint immediately before the expected definition and before the failing lookup, and record only the executed branch, module name, and whether the exact identifier is bound.
Fix Shape
Move or import the definition at the boundary that owns it, then pass it explicitly where practical. Do not create a placeholder global or silent fallback.
Verify
Test the failing input, passing input, skipped branch, fresh import order, missing optional dependency, and repeated execution.
Tips for Best Results
- ๐กMatch the identifier's exact spelling and case, then identify the scope that is actually performing the lookup.
- ๐กReproduce in a fresh process; notebook state and reload order can hide missing definitions.
- ๐กFix ownership or import order at the source instead of adding a global placeholder near the failing line.
Frequently Asked Questions
What is the Python NameError: Name Is Not Defined Debugging Prompt prompt?
Debug Python's name is not defined error from the exact traceback, identifier, scope, execution order, imports, branches, runtime, and minimal reproduction. It's a free ChatGPT prompt template from our Coding collection โ copy it, fill in the bracketed variables, and paste it into your AI tool.
Which AI tools work with this prompt?
It's written and tested for ChatGPT, Claude and Gemini. Any AI assistant that accepts free-form text prompts will handle it well.
How do I customize this ChatGPT prompt?
Replace the bracketed variables โ such as [paste], [details], [details or unknown] โ with your own details before running it. Match the identifier's exact spelling and case, then identify the scope that is actually performing the lookup.
Is this prompt free to use?
Yes. Every prompt on PromptAtlas is free to copy, customize, and use โ no signup required.
Related Prompts
Python ValueError: Invalid Literal for int() Debugging Prompt
Debug Python's invalid literal for int() error from the exact traceback, failing value, input source, parsing path, base, runtime, and intended data contract.
Python IndexError: List Index Out of Range Debugging Prompt
Debug Python's list index out of range error from the exact traceback, failing index, sequence state, mutation history, input, runtime, and minimal reproduction.
Python KeyError Debugging Prompt
Debug a Python KeyError from the exact traceback, failing key, mapping state, schema, data flow, runtime, and minimal reproduction.
Python 'NoneType' Object Is Not Subscriptable Debugging Prompt
Debug Python's 'NoneType' object is not subscriptable error from the exact traceback, value flow, contracts, runtime, inputs, and minimal reproduction.
JavaScript Maximum Call Stack Size Exceeded Debugging Prompt
Debug JavaScript's Maximum call stack size exceeded error from the exact stack, call graph, recursive path, runtime, inputs, and minimal reproduction.
JavaScript Cannot Read Properties of Undefined Debugging Prompt
Debug JavaScript's Cannot read properties of undefined error from the exact stack, runtime values, data flow, lifecycle timing, types, and minimal reproduction.