Apostolos\’ Daily Plate

Using pygame with Python 3.2.3

Posted in Πληροφορική, OpenIndiana by asyropoulos on 1 Αυγούστου, 2012

Yesterday I tried to compile Python 3.2.3 on OpenIndiana. There was absolutely no problem. Then I tried to compile pygame but it failed. The reason is that certain symbols are no longer defined in Python 3.2.0 and later versions. To solve this problem one has to apply the following patch:

diff -crB pygame-1.9.1release.orig/src/pygame.h pygame-1.9.1release.new/src/pygame.h
*** pygame-1.9.1release.orig/src/pygame.h	2009-07-06 19:09:50.000000000 +0300
--- pygame-1.9.1release.new/src/pygame.h	2012-08-01 19:26:45.902639760 +0300
*** 130,135 ****
--- 130,141 ----
  typedef getcharbufferproc charbufferproc;

+ #if PY_VERSION_HEX >= 0x3020000
+ #define PyCObject_AsVoidPtr(P) (PyCapsule_GetPointer(P, 0))
+ #define PyCObject_FromVoidPtr(X, P) (PyCapsule_New(X, 0, P))
+ #define PyCObject_Check(P) (PyCapsule_CheckExact(P))
+ #endif
  #define PyType_Init(x) (((x).ob_type) = &PyType_Type)

This solves all problems and pygame compiles and works just fine.

Ένα Σχόλιο

Subscribe to comments with RSS.

  1. Graham Hardman said, on 23 Σεπτεμβρίου, 2013 at 2:42 μμ

    Ευχαριστώ πολύ για αυτή τη λύση! Over a year later, I’ve found lots of people complaining about PyCObject being deprecated, but seemingly nobody offering a fix!


Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση /  Αλλαγή )

Φωτογραφία Google

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Google. Αποσύνδεση /  Αλλαγή )

Φωτογραφία Twitter

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Twitter. Αποσύνδεση /  Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση /  Αλλαγή )

Σύνδεση με %s

Αρέσει σε %d bloggers: