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: 14160
- 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()
“It is easier to change the specification to fit the program than vice versa.” — Alan J. Perlis
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: 14160
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Sofern das überhaupt wichtig ist. Gibt es denn konkrete Probleme?
“It is easier to change the specification to fit the program than vice versa.” — Alan J. Perlis