pygame für pypy3 installieren

Probleme bei der Installation?
opus
User
Beiträge: 19
Registriert: Freitag 28. Oktober 2022, 19:47

Moin,
ich möchte pygame mit pypy3 nutzen (auf Ubuntu).
pypy3 ist installiert.
Wie kann ich pygame dafür installieren. Aus den verschiedenen (teilweise alten) Einträgen im Netz werde ich nicht schlau.
Hat jemand einen Link zu eine aktuell nutzbare Installations-Beschreibung?
__deets__
User
Beiträge: 12829
Registriert: Mittwoch 14. Oktober 2015, 14:29

__deets__
User
Beiträge: 12829
Registriert: Mittwoch 14. Oktober 2015, 14:29

Hab's mal ausprobiert, so ging es problemlos:

Code: Alles auswählen

./bin/pypy -mensurepip
sudo aptitude install fluid-soundfont-gm fontconfig fonts-freefont-ttf libavcodec-dev libavformat-dev libfreetype6-dev libportmidi-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev libsdl1.2-dev libsdl2-dev libsdl2-gfx-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev libsmpeg-dev libswscale-dev libtiff5-dev libx11-6 libx11-dev python-numpy python-opengl python3-dev timgm6mb-soundfont xfonts-100dpi xfonts-75dpi xfonts-base xfonts-cyrillic
./bin/pypy -mpip install pygame
./bin/pypy -mpygame
opus
User
Beiträge: 19
Registriert: Freitag 28. Oktober 2022, 19:47

Hab's mal ausprobiert, so ging es problemlos:
Vielen Dank.
Leider muss ich wohl "ensurepip" noch installieren, oder richtiger aktivieren (weil ja "disabled").
Efolgsmeldung von mir folgt hoffentlich heute noch (muss mich erstmal um RealWorld Dinge kümmern).
__deets__
User
Beiträge: 12829
Registriert: Mittwoch 14. Oktober 2015, 14:29

ensurepip ist Teil von PyPy3, da sollte genau nix installiert werden muessen.
opus
User
Beiträge: 19
Registriert: Freitag 28. Oktober 2022, 19:47

Code: Alles auswählen

opus@opus-pc:~$ /usr/bin/pypy3 -mensurepip
ensurepip is disabled in Debian/Ubuntu for the system python.....
Das ist die Meldung die ich bekomme, daraus verstehe ich ensurepip müßte aktiviert werden. Nur wie soll das gehen.
Alle Diskussion im Internet beziehen sich dann auf die Einrichtung einer Virtuellen Umgebung. Derartiges nutze ich hier aber nicht:

Anscheinend bin ich zu bl***
Benutzeravatar
__blackjack__
User
Beiträge: 11265
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@opus: Da steht „[…] disabled […] for the system python“ und das ist ja nicht pypy3. Für das System-Python kann man sich `pip` über den anderen Weg installieren der in der `pip`-Dokumentation beschrieben ist. Das geht dann auch für pypy3.
“It should be noted that no ethically-trained software engineer would ever consent to write a `DestroyBaghdad` procedure. Basic professional ethics would instead require him to write a `DestroyCity` procedure, to which `Baghdad` could be given as a parameter.” — Nathaniel Borenstein
__deets__
User
Beiträge: 12829
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich hatte pypy3 von Hand "installiert" (entpacken & laufen lassen). Aber wenn's ueber das OS ist, ja - dann muss da stattdessen pypy3-pip oder was auch immer installiert werden.
opus
User
Beiträge: 19
Registriert: Freitag 28. Oktober 2022, 19:47

Ich habe die Installationsversion per "get-pip.py" (von https://pip.pypa.io/en/stable/installation/) versucht.
Diese lief erfolgreich durch. ("Successfully installed pip-22.3.1 setuptools-65.6.3 wheel-0.38.4").

Leider liefert "pypy3 -mpip install pygame" immedr noch den Fehler:

Code: Alles auswählen

  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error
  
  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [31 lines of output]
      
      
      WARNING, No "Setup" File Exists, Running "buildconfig/config.py"
      Using UNIX configuration...
.....
:oops:
__deets__
User
Beiträge: 12829
Registriert: Mittwoch 14. Oktober 2015, 14:29

Naja, die entscheidenden Teile des Fehlerouputs zeigst du nicht. Bei mir zumindest kamen da klare Hinweise.
opus
User
Beiträge: 19
Registriert: Freitag 28. Oktober 2022, 19:47

Der komplette Report:

Code: Alles auswählen

opus@opus-pc:~$ pypy3 -mpip install pygame
Defaulting to user installation because normal site-packages is not writeable
Collecting pygame
  Using cached pygame-2.1.2.tar.gz (10.1 MB)
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error
  
  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [31 lines of output]
      
      
      WARNING, No "Setup" File Exists, Running "buildconfig/config.py"
      Using UNIX configuration...
      
      /bin/sh: 1: sdl2-config: not found
      /bin/sh: 1: sdl2-config: not found
      /bin/sh: 1: sdl2-config: not found
      
      Hunting dependencies...
      
      ---
      For help with compilation see:
          https://www.pygame.org/wiki/Compilation
          https://www.pygame.org/wiki/CompilePyPy
      To contribute to pygame development see:
          https://www.pygame.org/contribute.html
      ---
      
      Traceback (most recent call last):
        File "<string>", line 36, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/tmp/pip-install-47a5x2vs/pygame_c53c55fd27af41e48c0e63313832fa5a/setup.py", line 359, in <module>
          buildconfig.config.main(AUTO_CONFIG)
        File "/tmp/pip-install-47a5x2vs/pygame_c53c55fd27af41e48c0e63313832fa5a/buildconfig/config.py", line 225, in main
          deps = CFG.main(**kwds)
        File "/tmp/pip-install-47a5x2vs/pygame_c53c55fd27af41e48c0e63313832fa5a/buildconfig/config_unix.py", line 188, in main
          DependencyProg('SDL', 'SDL_CONFIG', 'sdl2-config', '2.0', ['sdl']),
        File "/tmp/pip-install-47a5x2vs/pygame_c53c55fd27af41e48c0e63313832fa5a/buildconfig/config_unix.py", line 39, in __init__
          self.ver = config[0].strip()
      IndexError: list index out of range
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
__deets__
User
Beiträge: 12829
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich habe ja mit gutem Grund die
Liste der zu installierenden Pakete gepostet. Ohne die wird’s nix. Und in der Fehlermeldung stehen Links, wie man das Problem beseitigt.
opus
User
Beiträge: 19
Registriert: Freitag 28. Oktober 2022, 19:47

Danke für die Hilfe, das hätte ich so nicht gesehen/ verstanden.
Nachdem ich nun die gelisteten Pakete installiert hatte ( ohne numpy und opengl wegen Not Found) meldet MEIN PC nachdem "pypy3 - mpip install pygame" plötzlich " Speicherzugriffsfehler". Da zusätzlich auch kein WLAN zur Verfügung steht ist es wohl eher ein HardwareProblem. Das bedeutet aber das ich ich erstmal darum kümmern muss und die Installationsversuche von pygame für pypy3 unterbrechen muss.

Danke nochmal.
Zuletzt geändert von opus am Freitag 25. November 2022, 10:59, insgesamt 1-mal geändert.
__deets__
User
Beiträge: 12829
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich denke nicht, dass das ein Hardware-Problem ist. Das Ding hat nur zu wenig Speicher, und der GCC ist eine Sau, wenn es um eben diesen geht - so zumindest meine Vermutung. Und der wird ja angeworfen hier, damit das installiert werden kann. Alternativ kannst du probieren, pygame als git-repo zu klonen, und dann mit pypy daraus zu installieren. Das fuehrt dann dazu, dass Dateien nach einander kompiliert werden, und irgendwann ist man damit hoffentlich durch.
opus
User
Beiträge: 19
Registriert: Freitag 28. Oktober 2022, 19:47

OK. Dann wird das der nächste Versuch. Aber bei all den Problemen sehe ich schwarz für mein eigentliches Ziel ( Python App auf einem Raspi4 zu beschleunigen,). Das alles wird da wohl nicht klappen.
__deets__
User
Beiträge: 12829
Registriert: Mittwoch 14. Oktober 2015, 14:29

Hat fuer mich damals problemlos geklappt. Und das war ein Pi 1 - deutlich resourcen-beschraenkter, als der Pi 4. Aber klar, kann, muss aber nix bringen. Stattdessen C++ oder Rust sind auch eine Option.
opus
User
Beiträge: 19
Registriert: Freitag 28. Oktober 2022, 19:47

Hat fuer mich damals problemlos geklappt. Und das war ein Pi 1 - deutlich resourcen-beschraenkter,
Das hört sich gut an.

Leider tut sich auf meinem DevelopmentLaptop nix mehr via WLAN ( auch nicht mit einem WLAN-Dongle). IMHO läuft auch im Hintergrund nix mehr. Da muss ich mir erstmal wieder funktionierende Hardware "besorgen".
opus
User
Beiträge: 19
Registriert: Freitag 28. Oktober 2022, 19:47

Update:

Nach kompletter Neuinstallation hat die oben beschriebene Vorgehensweise (diesmal mit pypy3.7) doch zum Erfolg geführt.

Vielen Dank für die Unterstützung!

P.S.: Leider wurde keine Geschwindigkeitsverbesserung in der App erzielt:
__deets__
User
Beiträge: 12829
Registriert: Mittwoch 14. Oktober 2015, 14:29

Nur als Hinweis: PyPy ist ein JIT. Es dauert eine Weile bis der warm wird. Kann nix helfen. Kann aber helfen.
opus
User
Beiträge: 19
Registriert: Freitag 28. Oktober 2022, 19:47

Ich habe >5 Miuten laufen lassen ohne das was sich geändert hat.
Würde sich der noch "arbeitende JIT" irgendwie anders "bemerkbar" machen? (Systemresourcen via HTop??)

Andersherum gefragt, worin ist pygame geschrieben? Sollte es in C geschrieben sein wäre dies Ergebnis IMHO erklärbar. Meine App verwendet hauptsächlich Drawing Funktionen aus pygame (wie line, circle, set_at, blit) und ansonsten trigomische Math Funktionen.
Antworten