# Problem with importing in Python

su29090 129km09 at gmail.com
Sat Jan 12 00:23:17 CET 2013

```On Friday, January 11, 2013 5:43:10 PM UTC-5, Dave Angel wrote:
> On 01/11/2013 05:17 PM, su29090 wrote:
>
> > I'm trying to import a python file it keeps saying:
>
> >
>
> > ImportError: cannot import name Circle
>
> >
>
> > Here is the file I'm trying to import:
>
> >
>
> > Circle.py
>
> >
>
> > import math
>
> >
>
> > class circle:
>
> >     #Construct a circle object
>
> >     def __init__(self, radius = 1):
>
>
> >
>
> >     def getPerimeter(self):
>
> >         return 2 * self.radius * math.pi
>
> >
>
> >     def getArea(self):
>
>
> >
>
>
>
> >
>
> > from Circle import Circle
>
> >
>
> > def main():
>
> >     #Create a circle with a radius 1
>
> >     circle1 = Circle()
>
> >     print("The area of the circle of radius",
>
> >           circle1.radius, "is" , circle1.getArea())
>
> >
>
> >     #Create a circle with a radius 25
>
> >     circle2 = Circle(25)
>
> >     print("The area of the circle of radius",
>
> >           circle2.radius, "is" , circle2.getArea())
>
> >
>
> >     #Create a circle with a radius 125
>
> >     circle3 = Circle(125)
>
> >     print("The area of the circle of radius",
>
> >           circle3.radius, "is" , circle3.getArea())
>
> >
>
>
>
> >     print("The area of the circle of radius",
>
> >           circle2.radius, "is" , circle2.getArea())
>
> >
>
> >     main() # Call the main function
>
> >
>
> > How can I solve this problem?
>
> >
>
>
> >
>
>
>
> As Adnan has pointed out, Python is case insensitive.  You're apparently
>
> trying to refer to the class Circle by the name circle, or the other way
>
> around.
>
>
>
>
>
>
> 1) Specify the Python version.  I presume 3.3    It probably doesn't
>
> matter here, but it might have.
>
> 2) When showing two source files, identify where each starts and ends,
>
> and what the second one is called.
>
> 3) When showing an error, include the entire traceback, not just the
>
> last line.
>
>
>
> Now, there are conventions to follow as well (see Pep8).  One is that
>
> modules should use all lowercase, and classes should begin with a
>
> capital.  So the source file of your module should be named
>
> circle.py   and the class  Circle.  When you imported and instantiated
>
> the class, you assumed it was called Circle, but when you defined it,
>
> you mistakenly called it circle.
>
>
>
> The next error is the accidental indentation of the call to main().  As
>
> it stands now, it's a recursive call to itself.  And main() will never
>
> be called, because there's no call at top-level.
>
>
>
>
>
>
>
>
>
>
>
> --
>
>
>
> DaveA

Thanks for explanation which was very clear!

```