6

I'm trying to use Pygame with Python 3.3 on my windows 8 laptop. Pygame installed fine and when I import pygame it imports fine as well. Although when I try to execute this small code:

import pygame

pygame.init()

size=[700,500]
screen=pygame.display.set_mode(size)

I get this error:

Traceback (most recent call last):
  File "C:\Users\name\documents\python\pygame_example.py", line 3, in <module>
    pygame.init()
AttributeError: 'module' object has no attribute 'init'

I used pygame-1.9.2a0-hg_56e0eadfc267.win32-py3.3 to install Pygame. Pygame is installed in this location 'C:\PythonX' and Python 3.3 is installed in this location 'C:\Python33'. I have looked at other people having the same or similar problem and it doesn't seem to solve the error. Have I done anything wrong when installing Pygame? Or does it not support windows 8?

5
  • 2
    What does import pygame; print(pygame.__file__) print? Commented Nov 11, 2013 at 18:00
  • Traceback (most recent call last): File "<pyshell#3>", line 1, in <module> print(pygame.__file__) AttributeError: 'module' object has no attribute 'file' @MartijnPieters Commented Nov 11, 2013 at 18:03
  • Interesting. No idea what you imported there, but I am trying to figure out if that is actually the pygame module or something else. It is certainly possible that the 'real' pygame module has no .__file__ attribute, but it is surprising. Does print(pygame) give any detail? Commented Nov 11, 2013 at 18:07
  • Also, I want you to add the print() statements to your script, not run them in a Python shell please. Commented Nov 11, 2013 at 18:07
  • 1
    When I printed print(pygame.__file__) in my script I still got the same error as before and when I printed print(game) in my script I got this: <module 'pygame' (namespace)>. @MartijnPieters Commented Nov 11, 2013 at 18:12

4 Answers 4

13

After import pygame pygame.init()

I got this error message and programm didnt work: " AttributeError: module 'pygame' has no attribute 'init' "

because i named the file "pygame.py"...

When i chaned filename to "pygametest.py" everything worked.

Naming the filename exactly like the modulename seems to confuse python...

Sign up to request clarification or add additional context in comments.

Comments

8

You have a directory named pygame in your path somewhere.

$ mkdir pygame  # empty directory
$ python3.3
>>> import pygame
>>> pygame
<module 'pygame' (namespace)>
>>> pygame.__path__
_NamespacePath(['./pygame'])

Remove or rename this directory, it is masking the actual pygame package.

If you use print(pygame.__path__) it'll tell you where the directory was found; in the above example it was found relative to the current directory (./).

8 Comments

@interjay: No, not in Python 3, which added namespace support (what setuptools does with special __init__.py files).
I see. I guess the documentation is outdated then because it says: "The __init__.py files are required to make Python treat the directories as containing packages; this is done to prevent directories with a common name, such as string, from unintentionally hiding valid modules that occur later on the module search path."
@interjay: these are not packages. These are namespaces. :-P
@interjay: but if you feel that the tutorial is now no longer correct, do feel free to file a bug with the Python project.
btw: You can get the same error if you put your code in file pygame.py
|
1

I also named my app pygame.py and i had the same issue but when i changed it, it worked for me .

Comments

0

Try to place the pygame module in .\PythonX\Lib\site-packages\

I use pip to install all modules I need.

Have you downloaded pygame and manually placed it in the PythonX folder ? Maybe the error comes from that.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.