13

I am following the Curses programming HowTo on the Python site, but I am running into a rather bizarre issue.

My code is currently very short, doesn't actually do anything because of this error, I haven't been able to move on. Here's my code:

import curses
#from curses import wrapper

stdscr = curses.initscr()
curses.noecho()
curses.cbreak()

stdscr.keypad(True)

def main(stdscr):

    begin_x = 20; begin_y = 7
    height = 5; width = 40
    win = curses.newwin(height, width, begin_y, begin_x)

    stdscr.refresh()
    stdscr.getkey()

if __name__ == '__main__':
    wrapper(main)

and the Traceback:

Traceback (most recent call last):
  File "curses.py", line 1, in <module>
    import curses
  File "/home/nate/Documents/Programming/Python/curses.py", line 4, in <module>
    stdscr = curses.initscr()
AttributeError: 'module' object has no attribute 'initscr'

I commented out the from curses import wrapper because that was giving me another error,

Traceback (most recent call last):
  File "curses.py", line 1, in <module>
    import curses
  File "/home/nate/Documents/Programming/Python/curses.py", line 2, in <module>
    from curses import wrapper
ImportError: cannot import name wrapper

but I suppose that would be another question.

I am following the tutorial word for word right now, to learn curses, but currently the only thing it's making me do is use curses directed at Python :P.

I am running Python 3.3.2 on Ubuntu 13.10, so this question has nothing to do with this, as he was using Windows and I am not (thankfully :D)

Why am I not able to do this? I'm copying it directly from the Python site, so you'd think it would work!

Community
  • 1
  • 1
RPiAwesomeness
  • 5,009
  • 10
  • 34
  • 52

2 Answers2

65

You named your file curses.py, so Python thinks that file is the curses module. Name it something else.

user2357112
  • 260,549
  • 28
  • 431
  • 505
3

mv curses.py someOtherName.py

If you get the same error, try removing any .pyc files.

In this case it would be rm curses.pyc.

RPiAwesomeness
  • 5,009
  • 10
  • 34
  • 52
chandan
  • 964
  • 1
  • 19
  • 26