Typeerror module object is not callable : How to Fix?

Typeerror module object is not callable featured image

Typeerror module object is not callable error occurs while invoking any module in the place of python functions. Python modules may contain classes , functions and member variables.  If while calling any function we mistakenly swap modules and functions and by mistake we call any module  in the place of function, we get this error.

Typeerror module object is not callable (Cause):

We have already seen the generic cause for this error “module object is not callable”. In this section we will address different cases for this-

Case 1 : Invoking 3rd party Modules as Function-

There are multiple python modules like pandas, numpy, scipy etc which we import in our code. These are 3rd party modules if we call invoke them as function we get this error.

Typeerror module object is not callable Cause 1
Typeerror module object is not callable Cause 1

As the above image shows. Numpy is a python module, not a python class. Hence We can not create an instance of it. That’s why the python interpreter throws the above error.

Case 2 : Invoking custom module as function –

This case is more often than the above one. We usually create module and the member class with same name . Suppose we need to create the object for the class . But unfortunately we invoke the module as constructor of the class. Below code is self explainable.

class Functionality:
    def execute(self):
        print("welcome")

If we save this module as Fucntionality.py and then import the same into new python script -script.py ( refer the below code )

import Functionality
obj= Functionality()
 
module object is not callable cause 2
module object is not callable cause 2

Typeerror module object is not callable (Solution):

The Golden rule to fix this error is to invoke the respective python class or function in the place of the python module. This concept is the same for library python modules like NumPy, pandas, etc and custom develop python module.

Case 1 : (Solved)  Invoking 3rd party Modules as Function-

Let’s import the standard time module. Here time module contains time() function.

import time
obj=time()
print(obj)

But in the above code, it directly calls the module. Which is not the right way. That’s why it through the same error.

module object is not callable example
object is not callable example

The correct way is below.

object is not callable
object is not callable

Another way to fix this below. Below we have imported the respective function time() from the complete module. Earlier we were importing the complete module. Which provides the double reference of the same name to the python interpreter. That why it throughs the same error.

import time
obj=time.time()
print(obj)

Case 2 : (Solved) Invoking custom module as function –

In addition, Suppose we create a python module with the name my_utillity.py which has a function my_utillity(). Here if we import the complete package the call the my_utillity() directly. It will show the same error. The best way to fix the module object is not callable is already mentioned above. It will remain unchanged.

Here is my_utillity.py which contains the my_utillity() function.

def my_utility():
  return "My utility invoked"

The correct way to call it.

from my_utility import my_utility
print(my_utility())

OR

import my_utility
print(my_utility.my_utility())

To sum up, I hope now you have understood the root cause of this error with its Fix. Please comment below if you have any related views over it.

Related Articles  ( Must Read for you ):

typeerror dataframe object is not callable : Quickly Fix It

Typeerror list object is not callable : Quick Fix for You

Numpy ndarray object is not callable Error: Fix it Easily

Typeerror tuple object is not callable : Get the Tricks to Fix it

Typeerror int object is not callable Error : Tricks to Fix

 

Thanks

Data Science Learner Team

Join our list

Subscribe to our mailing list and get interesting stuff and updates to your email inbox.

Thank you for signup. A Confirmation Email has been sent to your Email Address.

Something went wrong.

 
Thank you For sharing.We appreciate your support. Don't Forget to LIKE and FOLLOW our SITE to keep UPDATED with Data Science Learner