In this article, we'll talk about the "TypeError: 'module' object is not callable" error in Python.
We'll start by defining some of the keywords found in the error message —
You'll then see some examples that raise the error, and how to fix it.
Feel free to skip the next two sections if you already know what modules are, and what it means to call a function or method.
What Is a Module in Programming?
In modular programming, modules are simply files that contain similar functionalities required to perform a certain task.
Modules help us separate and group code based on functionality. For example, you could have a module called
math-ops.py which will only include code related to mathematical operations.
This makes easier to read, reuse, and understand the code. To use a module in a different part of your code base, you'd have to import it to gain access to all the functionalities defined in the module.
In Python, there are many built-in modules like
time, and so on.
Here's an example that shows how to use the
import math print(math.sqrt(25)) //5.0
As you can see above, the first thing we did before using the
math module was to import it:
We then made use of the module's
sqrt method which returns the square root of a number:
All it took us to get the square root of 25 was two lines of code. In reality, the
math module alone has over 3500 lines of code.
This should help you understand what a module is and how it works. You can also create your own modules (we'll do that later in this article).
callable Mean in the “TypeError: module object is not callable” Error?
In Python and most programming languages, the verb "call" is associated with executing the code written in a function or method.
Other similar terms mostly used with the same action are "invoke" and "fire".
Here's a Python function that prints "Smile!" to the console:
def smile(): print("Smile!")
If you run the code above, nothing will be printed to the console because the function
smile is yet to be called, invoked, or fired.
To execute the function, we have to write the function name followed by parenthesis. That is:
def smile(): print("Smile!") smile() # Smile!
Without the parenthesis, the function will not be executed.
Now you should understand what the term
callable means in the error message: "TypeError: 'module' object is not callable".
What Does the “TypeError: module object is not callable” Error Mean in Python?
The last two sections helped us understand some of the keywords found in the "TypeError: 'module' object is not callable" error message.
To put it simply, the "TypeError: 'module' object is not callable" error means that modules cannot be called like functions or methods.
How to Fix the “TypeError: module object is not callable” Error in Python
There are generally two ways that the "TypeError: 'module' object is not callable" error can be raised: calling an inbuilt or third party module, and calling a module in place of a function.
Error Example #1
import math print(math(25)) # TypeError: 'module' object is not callable
In the example above, we called the
math module (by using parenthesis
()) and passed 25 as a parameter hoping to perform a particular math operation:
math(25). But we got the error.
To fix this, we can make use of any math method provided by the
math module. We'll use the
import math print(math.sqrt(25)) # 5.0
Error Example #2
For this example, I'll create a module for calculating two numbers:
# add.py def add(a,b): print(a+b)
The name of the module above is
add which can be derived from the file name add.py.
Let's import the
add() function from the
add module in another file:
# main.py import add add(2,3) # TypeError: 'module' object is not callable
You must be wondering why we're getting the error even though we imported the module.
Well, we imported the module, not the function. That's why.
To fix this, you have to specify the name of the function while importing the module:
from add import add add(2,3) # 5
We're being specific:
from add import add. This is the same as saying, "from the add.py module, import the
You can now use the
add() function in the main.py file.
In this article, we talked about the "TypeError: 'module' object is not callable" error in Python.
This error occurs mainly when we call or invoke a module as though it were a function or method.
We started by discussing what a module is in programming, and what it means to call a function – this helped us understand what causes the error.
We then gave some examples that showed the error being raised and how to fix it.