Seite 1 von 1
problem im zusammenhang mit pygame
Verfasst: Montag 22. September 2025, 07:47
von peelde
betriebsystem linux mint und python3
in beispielprogrammen mit pygame bekomme ich regelmäßig die nachricht:
frozen importlib._bootstrap>:488: RuntimeWarning ....
manchmal wird das programm dann ausgeführt.
wo ist der wurm?
grüße peelde
Re: problem im zusammenhang mit pygame
Verfasst: Montag 22. September 2025, 17:16
von sparrow
Bitte den Code zeigen, den du ausführst und die gesammte Fehlermeldung.
Re: problem im zusammenhang mit pygame
Verfasst: Montag 22. September 2025, 18:04
von peelde
Beispielprogramm:
#!/usr/bin/env python
"""Proof of concept gfxdraw example"""
import pygame
import pygame.gfxdraw
def main():
pygame.init()
screen = pygame.display.set_mode((500, 500))
screen.fill((255, 0, 0))
s = pygame.Surface(screen.get_size(), pygame.SRCALPHA, 32)
pygame.draw.line(s, (0, 0, 0), (250, 250), (250 + 200, 250))
width = 1
for a_radius in range(width):
radius = 200
pygame.gfxdraw.aacircle(s, 250, 250, radius - a_radius, (0, 0, 0))
screen.blit(s, (0, 0))
pygame.draw.circle(screen, pygame.Color("GREEN"), (50, 100), 10)
pygame.draw.circle(screen, pygame.Color("BLACK"), (50, 100), 10, 1)
pygame.display.flip()
try:
while 1:
event = pygame.event.wait()
if event.type == pygame.QUIT:
break
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE or event.unicode == "q":
break
pygame.display.flip()
finally:
pygame.quit()
if __name__ == "__main__":
main()
Fehlermeldung:
~/dos/python/py-kurs/pygame-2.0.0.dev10/examples Mo Sep 22 18:59:34
>> p aacircle.py
<frozen importlib._bootstrap>:488: RuntimeWarning: Your system is avx2 capable but pygame was not built with support for it. The performance of some of your blits could be adversely affected. Consider enabling compile time detection with environment variables like PYGAME_DETECT_AVX2=1 if you are compiling without cross compilation.
pygame 2.5.2 (SDL 2.30.0, Python 3.12.3)
Hello from the pygame community.
https://www.pygame.org/contribute.html
Re: problem im zusammenhang mit pygame
Verfasst: Montag 22. September 2025, 21:52
von sparrow
Das ist keine Fehlermeldung sondern eine Warnung. Und sie erklärt sich sehr wortreich. Dein System kann avx2 aber die Distribution hat pygame ohne Unterstützung übersetzt. Wenn du das nutzen möchtest, musst du pygame wahrscheinlich selbst übersetzen.
Re: problem im zusammenhang mit pygame
Verfasst: Dienstag 23. September 2025, 00:50
von __blackjack__
@peelde: Anmerkungen zum Quelltext:
Der ``try``-Block sollte mehr Code umfassen. Das ``finally`` räumt auf was der `pygame.init()`-Aufruf initialisiert hat und zwischen dem `pygame.init()`-Aufruf und dem ``try`` steht Code der fehlschlagen könnte, und dann wird `pygame.quit()` nicht aufgerufen.
Grössen/Zahlen die von anderen Zahlen abhängen, sollten möglichst im Code berechnet werden, statt die selbst auszurechnen und hart in den Code zu schreiben. Sonst muss man alles von Hand neu berechnen, wenn man Zahlen abändern will. Eine Quelle von Fehlern.
Mal wird `pygame.Color()` benutzt, und mal werden Farben als Tupel aus drei Zahlen angegeben. Lesbarer ist es `pygame.Color()` zu verwenden.
Einbuchstabige Namen sind selten gute Namen. Das geht für Koordinaten mit `x`, `y`, und `z` oder mit `i`, `j`, und `k` für Laufvariablen oder Indexwerten, aber man sollte nicht nur `s` schreiben, wenn man `surface` meint.
Python hat einen Datentyp für Wahrheitswerte (`bool`) mit den beiden Werten `True` und `False`. Da sollte man keine Zahlen für missbrauchen.
Da bei den Tests in der Schleife letztendlich im Erfolgsfall letztlich in beiden Fällen die Schleife verlassen wird, kann man die drei ``if``-Anweisungen auch zu *einer* zusammenfassen.
Bei dem Tastenereignis wird mal die Tastenkonstante und mal der Unicode-Wert zum Vergleich genommen, obwohl es für "q" auch eine Konstante gibt. Wenn man für beides das gleiche Attribut verwendet, kann man die Bedingung mit ``in`` formulieren.
`flip()` oder `update()` braucht man nicht in der Schleife, wenn man nichts am `screen` ändert.
Eine Schleife die genau einmal durchlaufen wird ist keine sinnvolle Schleife.
Zwischenstand:
Code: Alles auswählen
#!/usr/bin/env python
"""
Proof of concept gfxdraw example
"""
import pygame
import pygame.gfxdraw
def main():
pygame.init()
try:
size = 500
radius = int(size * 0.8) // 2
screen = pygame.display.set_mode((size, size))
screen.fill(pygame.Color("RED"))
screen_rect = screen.get_rect()
surface = pygame.Surface(screen.get_size(), pygame.SRCALPHA, 32)
pygame.draw.line(
surface,
pygame.Color("BLACK"),
screen_rect.center,
screen_rect.move(radius, 0).center,
)
for radius_offset in range(2):
pygame.gfxdraw.aacircle(
surface,
*screen_rect.center,
radius - radius_offset,
pygame.Color("BLACK"),
)
screen.blit(surface, (0, 0))
center = (50, 100)
radius = 10
pygame.draw.circle(screen, pygame.Color("GREEN"), center, radius)
pygame.draw.circle(screen, pygame.Color("BLACK"), center, radius, 1)
pygame.display.flip()
for event in iter(pygame.event.wait, None):
if event.type == pygame.QUIT or (
event.type == pygame.KEYDOWN
and event.key in [pygame.K_ESCAPE, pygame.K_q]
):
break
finally:
pygame.quit()
if __name__ == "__main__":
main()
Re: problem im zusammenhang mit pygame
Verfasst: Dienstag 23. September 2025, 11:56
von peelde
Die Fehlermeldung/Nachricht ("frozen....") läßt sich auch leichter provozieren:
~/dos/python Di Sep 23 10:48:31
>> p
Python 3.12.3 (main, Aug 14 2025, 17:47:21) [GCC 13.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pygame
<frozen importlib._bootstrap>:488: RuntimeWarning: Your system is avx2 capable but pygame was not built with support for it. The performance of some of your blits could be adversely affected. Consider enabling compile time detection with environment variables like PYGAME_DETECT_AVX2=1 if you are compiling without cross compilation.
pygame 2.5.2 (SDL 2.30.0, Python 3.12.3)
Hello from the pygame community.
https://www.pygame.org/contribute.html
>>> exit()
Die obige Meldung kam nachdem ein Update versucht wurde:
~/dos/python Di Sep 23 10:47:38
>> sudo apt install python3-pygame
Paketlisten werden gelesen… Fertig
Abhängigkeitsbaum wird aufgebaut… Fertig
Statusinformationen werden eingelesen… Fertig
python3-pygame ist schon die neueste Version (2.5.2-2).
und nun?
Re: problem im zusammenhang mit pygame
Verfasst: Dienstag 23. September 2025, 12:43
von grubenfox
vermutlich das was sparrow etwas weiter oben geschrieben hatte
https://www.pygame.org/wiki/GettingStar ... m%20Source
Re: problem im zusammenhang mit pygame
Verfasst: Dienstag 23. September 2025, 14:27
von __blackjack__
Sofern das überhaupt wichtig ist. Gibt es denn konkrete Probleme?
Re: problem im zusammenhang mit pygame
Verfasst: Montag 13. Oktober 2025, 16:28
von avivadee
Das liegt oft daran, dass Pygame oder eine Abhängigkeit nicht ganz richtig installiert wurde, oder an Inkompatibilitäten zwischen Python-Version und Pygame. Prüfe mal, ob du die aktuellste Version von Pygame hast (am besten per `pip install --upgrade pygame`). Manchmal hilft es auch, das Programm in einem frischen virtuellen Environment zu starten. Die Warnung ist meist harmlos, solange das Programm läuft, aber ein Update könnte helfen.
Re: problem im zusammenhang mit pygame
Verfasst: Montag 13. Oktober 2025, 18:35
von __blackjack__
@avivadee: Es wurde richtig installiert und es gibt auch keine Inkompatibilität zwischen Python und Pygame. Da gibt's nichts was man irgendwie lösen müsste.
Re: problem im zusammenhang mit pygame
Verfasst: Dienstag 14. Oktober 2025, 15:17
von avivadee
Das liegt oft daran, dass Pygame oder eine Abhängigkeit nicht ganz richtig installiert wurde, oder an Inkompatibilitäten zwischen Python-Version und Pygame. Prüfe mal, ob du die aktuellste Version von Pygame hast (am besten per `pip install --upgrade pygame`). Manchmal hilft es auch, das Programm in einem frischen virtuellen Environment zu starten. Die Warnung ist meist harmlos, solange das Programm läuft, aber ein Update könnte helfen.
Re: problem im zusammenhang mit pygame
Verfasst: Dienstag 14. Oktober 2025, 16:50
von DeaD_EyE
Nein und das steht doch auch in der Meldung.
Jedenfalls muss man sich nur darüber Gedanken machen, wenn es zu langsam läuft und man zu 100% weiß, dass es nicht am eigenen Quellcode liegt und man exzessiv die blit-Methode einsetzt.
AVX-512 (Advanced Vector Extensions 512) ist eine Befehlssatzerweiterung für x86-Prozessoren, die die Leistung durch die Verarbeitung von 512-Bit-Vektoren erheblich steigern kann. Diese Erweiterung beschleunigt insbesondere rechenintensive Anwendungen wie wissenschaftliche Simulationen, KI, Datenanalyse und Medienverarbeitung, indem sie Operationen für 32 doppelte oder 64 einzelne Gleitkommazahlen in einem Taktzyklus ermöglicht. Die volle Leistung von AVX-512 wird jedoch oft durch die Notwendigkeit eingeschränkt, energieeffizientere E-Cores (Efficiency-Kerne) des Prozessors zu deaktivieren.