pygame findet seine Attribute nicht

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Antworten
Cortez
User
Beiträge: 115
Registriert: Montag 31. Dezember 2018, 15:28

Ich habe mit pip das pygame installiert, aber jedesmal, wenn ich in einem Programm was machen will, findet pygame seine Attribute nicht.

Es kommt immer die Meldung:

module pygame has not attribute 'name des Attributs'

Was könnte ich da machen?

Vielen Dank und freundliche Grüße
__deets__
User
Beiträge: 14522
Registriert: Mittwoch 14. Oktober 2015, 14:29

Bitte die *wirkliche* komplette Fehlermeldung zeigen. Dann muss man nicht raten. Wenn man raet, dann behaupte ich: du hast dein Skript "pygame.py" genannt, und damit das echte Modul verschattet.
narpfel
User
Beiträge: 644
Registriert: Freitag 20. Oktober 2017, 16:10

In blaue geraten: Hast du dein Modul selbst `pygame` genannt?

Wenn nicht, müsstest du noch ein paar Informationen liefern: Was gibt `print(pygame)` nach dem Import aus? Hast du das richtige `pip` für den Pythoninterpreter benutzt, mit dem du das Programm ausführst? Welches Attribut konkret wird nicht gefunden?
Cortez
User
Beiträge: 115
Registriert: Montag 31. Dezember 2018, 15:28

Entschuldigt bitte meine späte Antwort:

Die Fehlermeldung im Wortlaut lautet:

Code: Alles auswählen

pygame.init()
AttributeError: module 'pygame' has no attribute 'init'
print (pygame) ergibt das:

Code: Alles auswählen

<module 'pygame' from '/home/user/Eigene Programme/python_buch/pygame.py'>
narpfel
User
Beiträge: 644
Registriert: Freitag 20. Oktober 2017, 16:10

@Cortez: Genau wie von __deets__ und mir geraten: Du hast dein Programm selbst `pygame.py` genannt und damit das installierte `pygame`-Modul überdeckt.

Edit: Sorry, ich kann Namen anscheinend nicht lesen.
Zuletzt geändert von narpfel am Mittwoch 10. Februar 2021, 17:10, insgesamt 1-mal geändert.
Sirius3
User
Beiträge: 17737
Registriert: Sonntag 21. Oktober 2012, 17:20

Dann haben ja __deets__ und narpfel richtig geraten. Nenne Deine Datei pygame.py um.
Cortez
User
Beiträge: 115
Registriert: Montag 31. Dezember 2018, 15:28

Das habe ich gemacht. Jetzt erhalte ich folgende Fehlermeldung:

ModuleNotFoundError: No module named 'pygame'

Dabei habe ich es über pip installiert.
narpfel
User
Beiträge: 644
Registriert: Freitag 20. Oktober 2017, 16:10

@Cortez: Passt das `pip` denn zum Pythoninterpreter, mit dem du das Programm ausführst? Benutzt du virtuelle Umgebungen (oder eine IDE, die die automatisch anlegt)? Hast du mehrere verschiedene Pythonversionen installiert?
Cortez
User
Beiträge: 115
Registriert: Montag 31. Dezember 2018, 15:28

Hallo,

ich benutze standardmäßig python 3.6. Python 2 ist zwar noch installiert ( wenn ich in einem Terminal "python" eingebe, dann meldet er sich mit einer python 2 Version).

Aber in meiner IDE nutze ich folgendes Shebang (#!/usr/bin/python3.6).

Hier noch mal die Meldung des pip, wenn ich das installieren möchte (da steht irgendwas von python 3.7 - von daher könnte es schon was mit der Version zu tun haben).

WARNING: The directory '/home/user/.cache/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Requirement already satisfied: pygame in /usr/local/lib/python3.7/site-packages (1.9.6)
WARNING: You are using pip version 20.0.2; however, version 21.0.1 is available.
You should consider upgrading via the '/usr/local/bin/python3.7 -m pip install --upgrade pip' command.
narpfel
User
Beiträge: 644
Registriert: Freitag 20. Oktober 2017, 16:10

@Cortez: Ja, du hast `pygame` für Python 3.7 installiert und willst es dann mit Python 3.6 importieren. Funktioniert logischerweise nicht.

Am einfachsten vermeidet man solche Fehler, wenn man `pip` immer mit `-m` über den Pythoninterpreter aufruft, für den man etwas installieren will. In diesem Fall also `python3.6 -m pip install pygame`.

Und ich persönlich würde mit `pip` generell nur in virtuellen Umgebungen etwas installieren. Wenn man nicht gut aufpasst, kann man sich damit auch gerne mal die globale Python-Installation kaputt machen.
Cortez
User
Beiträge: 115
Registriert: Montag 31. Dezember 2018, 15:28

Ok, super - jetzt funktioniert es. Wieder was gelernt.
Bevor ich mit virtuellen Umgebungen anfange, entrümple ich besser erst mal - wie du siehst, laufen auf meinem System anscheinend mehrere python-Versionen gleichzeitig.

Vielen Dank nochmal.
Antworten