Last modified: Mar 03, 2025 By Alexander Williams

Fix Python NameError: Name 'print' Not Defined

Python is a powerful programming language. But errors can occur. One common error is the NameError: Name 'print' Not Defined. This error can confuse beginners. Let's explore why it happens and how to fix it.

What Causes the NameError: Name 'print' Not Defined?

The NameError occurs when Python cannot find a name in the current scope. The name could be a variable, function, or class. In this case, Python cannot find the print function.

This error often happens when you mistakenly overwrite the print function. For example, if you assign a value to a variable named print, the original function is lost.


# Example of overwriting the print function
print = 42
print("Hello, World!")  # This will raise a NameError


NameError: name 'print' is not defined

How to Fix the NameError: Name 'print' Not Defined

To fix this error, you need to ensure that the print function is not overwritten. Here are some steps to resolve the issue:

1. Check for Variable Names: Ensure that you have not assigned a value to a variable named print. If you have, rename the variable.


# Corrected code
my_print = 42
print("Hello, World!")  # This will work

2. Restart the Python Interpreter: If you are working in an interactive environment like Jupyter Notebook or Python REPL, restart the kernel or interpreter. This will reset all variables and functions.

3. Use a Different Scope: If you need to use the name print for a variable, do so in a different scope. For example, inside a function or class.


# Using print inside a function
def my_function():
    print = 42
    print("Hello, World!")  # This will raise a NameError

my_function()

For more on handling NameError in different contexts, check out our guide on Python NameError in Functions and Classes.

Preventing NameError in the Future

To avoid NameError in the future, follow these best practices:

1. Avoid Using Built-in Names: Do not use Python built-in function names like print, len, or list as variable names.

2. Use Descriptive Variable Names: Use meaningful names for variables. This reduces the chance of name conflicts.

3. Check Your Code Regularly: Regularly review your code for potential issues. Use tools like linters to catch errors early.

For more tips on debugging Python errors, read our article on How to Fix NameError in Python.

Conclusion

The NameError: Name 'print' Not Defined is a common issue in Python. It occurs when the print function is overwritten or not found. By following best practices and understanding the causes, you can easily fix and prevent this error.

For more information on related errors, check out our guides on Fix Python NameError: Name 'None' Not Defined and Fix Python NameError: Name 'True' Not Defined.