Nameerror name ‘raw_input’ is not defined

Struggling to fix the Python nameerror name ‘raw_input’ is not defined error message?

Errors are inevitable, and it’s frustrating when you don’t know how to resolve them.

Well, in this article, we are going to show you how you are going to fix this error.

We will also discuss what this error is all about and why it occurs in your Python script.

What is “nameerror name ‘raw_input’ is not defined”?

The error message “nameerror: name ‘raw_input’ is not defined occurs when you try to call the raw_input() function using Python version 3.

Unfortunately, the raw_input() function has been renamed into input() in Python version 3.

So that’s why when you are trying to call raw_input() it raised an nameerror name ‘raw_input’ is not defined, because the function does not exist in that version of Python.

You can only use raw_input() in Python version 2, raw_input function is used to accept the input from the user.

Why does “python raw_input not defined” error message occur?

There are several reasons why this error occurs in your Python script, here are the following:

❌ Incorrect Function Name

❌ Incorrect Syntax

❌ Typing Error

❌ Incorrect Module

How to fix “nameerror name ‘raw_input’ is not defined”?

To fix this error, you have to replace all instances of raw_input() with the input() function in your program

The following are the solutions that you can use to resolve this error.

Solution 1: Change the raw_input() function into input()

As mentioned above, the raw_input() function has been removed in Python version 3 into the input() function. Therefore, you have to change or replace all instances of raw_input().

Incorrect code:

❌website = raw_input("Enter your favorite website: ")

Corrected code:


✅ website = input("Enter your favorite website: ")

For example:

✅ website = input("Enter your favorite website: ")
print("Hello, welcome to " + website + "!")

Output:

Enter your favorite website: Itsourcecode
Hello, welcome to Itsourcecode!

Example code using input in mathematical computation

✅ a = input('Enter First Number: ')
b = input('Enter Second Number: ')

result = int(a) + int(b)
print('Total: ', result)

Output:

Enter First Number: 5
Enter Second Number: 5
Total:  10

Solution 2: Use six library

When you have a lot of legacy code that uses raw_input() and you don’t want to replace all instances with input(), you can use a compatibility library like six.

This library provides a wrapper function called input() that works like the old raw_input() function.

For example:

 import six

website = six.moves.input("Enter your favorite website: ")
print("Hello,welcome to " + website + "!")

Output:

Enter your favorite website: itsourcode
Hello,welcome to itsourcode!

Solution 3: Use Aliases

You can define an alias for raw_input() and map it to input() using the built-in function setattr().

This will allow you to use raw_input() in your code, but it will actually call input().

For example:

setattr(__builtins__, 'raw_input', input)

website = raw_input("Enter your favorite website:")
print("Hello, welcome to " + website + "!")

Output:

Enter your favorite website:Itsourcecode
Hello, welcome to Itsourcecode!

Conclusion

The error message “nameerror: name ‘raw_input’ is not defined occurs when you try to call the raw_input() function using Python version 3.

This article already provides solutions for this error to help you fix the Python name model is not defined error message.

You could also check out other “nameerror” articles that may help you in the future if you encounter them.

Hoping that this article helps you fix the error. Thank you for reading itsourcecoders 😊