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
problem im zusammenhang mit pygame
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
#!/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
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.
- __blackjack__
- User
- Beiträge: 14185
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@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:
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()
“Every thinking person fears nuclear war and every technological nation plans for it. Everyone knows
it's madness, and every country has an excuse.” — Carl Sagan, Cosmos, Episode 13: Who Speaks for Earth?
it's madness, and every country has an excuse.” — Carl Sagan, Cosmos, Episode 13: Who Speaks for Earth?
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?
~/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?
vermutlich das was sparrow etwas weiter oben geschrieben hatte
https://www.pygame.org/wiki/GettingStar ... m%20Source
https://www.pygame.org/wiki/GettingStar ... m%20Source
_______________________________________________________________________________
https://www.python-kurs.eu/index.php
https://learnxinyminutes.com/docs/python/ https://learnxinyminutes.com/docs/de-de/python-de/
https://quickref.me/python https://docs.python-guide.org/
- __blackjack__
- User
- Beiträge: 14185
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Sofern das überhaupt wichtig ist. Gibt es denn konkrete Probleme?
“Every thinking person fears nuclear war and every technological nation plans for it. Everyone knows
it's madness, and every country has an excuse.” — Carl Sagan, Cosmos, Episode 13: Who Speaks for Earth?
it's madness, and every country has an excuse.” — Carl Sagan, Cosmos, Episode 13: Who Speaks for Earth?
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.
- __blackjack__
- User
- Beiträge: 14185
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@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.
“Every thinking person fears nuclear war and every technological nation plans for it. Everyone knows
it's madness, and every country has an excuse.” — Carl Sagan, Cosmos, Episode 13: Who Speaks for Earth?
it's madness, and every country has an excuse.” — Carl Sagan, Cosmos, Episode 13: Who Speaks for Earth?
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.
- DeaD_EyE
- User
- Beiträge: 1275
- Registriert: Sonntag 19. September 2010, 13:45
- Wohnort: Hagen
- Kontaktdaten:
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.
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.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server