TypeError: 'module object is not callable'

Lawrence Oluyede l.oluyede at gmail.com
Mon Sep 3 05:06:11 EDT 2007


On Sep 3, 10:48 am, christophert... at hotmail.com wrote:
> Hi
>
> I am new to Python and have recieved this error message when trying to
> instantiate an object from a class from another file within the same
> directory and wondered what I have done wrong.
>
> I have a Step.py class:
> class Step(object)
>         def __init__(self, sName):
>         "Initialise a new Step instance"
>         self.sName = sName
>         self.depSteps = []
>         self.remDepSteps = []
>         self.isCompleted = 0
>
> Then I have created a new file within the same directory called
> main.py:
>
> import Step
> a  = Step("magn")
>
> The following however generates the error
> Traceback (most recent call last):
>   File "main.py", line 3, in ?
>     a  = Step("magn")
> TypeError: 'module' object is not callable

This is because when you issue "import Step" you're actually importing
the "Step" _module_, not the "Step" class inside the module.

You can do this in at least two ways:

------
import Step
a = Step.Step("magn") # access the Step class inside Step module
------

or

------
from Step import Step # insert in the current namespace the Step class
a = Step("magn")
------

>
> If anyone could help point me in the right direction, how to fix this
> problem it would be much appreciated.
> Chris

HTH




More information about the Python-list mailing list