简体   繁体   中英

pip install pygame on ubuntu 18.04 using pyenv/python 3.7

I've got python 3.7.0 installed on ubuntu 18.04 using pyenv and I'm trying to install pygame using pip. My procedure is:-

sudo apt-get build-dep python-pygame
pip install pygame

The last step keeps giving me:-

peter@Brian:~$ pip install pygame
Collecting pygame
  Using cached https://files.pythonhosted.org/packages/61/06/3c25051549c252cc6fde01c8aeae90b96831370884504fe428a623316def/pygame-1.9.3.tar.gz
Installing collected packages: pygame
  Running setup.py install for pygame ... error
   ...
   ...
    running build_ext
    building 'pygame.imageext' extension
    creating build/temp.linux-x86_64-3.7
    creating build/temp.linux-x86_64-3.7/src
    gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -D_REENTRANT -DENABLE_NEWBUF=1 -I/usr/X11R6/include -I/usr/include/SDL -I/usr/include/SDL -I/usr/include -I/usr/include -I/home/peter/.pyenv/versions/3.7.0/include/python3.7m -c src/imageext.c -o build/temp.linux-x86_64-3.7/src/imageext.o
    src/imageext.c: In function ‘write_jpeg’:
    src/imageext.c:487:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             if (num_lines_to_write > (cinfo.image_height - cinfo.next_scanline) -1) {
                                    ^
    In file included from src/pygame.h:32:0,
                     from src/imageext.c:49:
    src/imageext.c: In function ‘opengltosdl’:
    src/_pygame.h:206:46: warning: right-hand operand of comma expression has no effect [-Wunused-value]
     #define RAISE(x,y) (PyErr_SetString((x), (y)), (PyObject*)NULL)
                        ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
    src/imageext.c:632:9: note: in expansion of macro ‘RAISE’
             RAISE (PyExc_RuntimeError, "Cannot get video surface.");
             ^~~~~
    src/_pygame.h:206:46: warning: right-hand operand of comma expression has no effect [-Wunused-value]
     #define RAISE(x,y) (PyErr_SetString((x), (y)), (PyObject*)NULL)
                        ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
    src/imageext.c:636:9: note: in expansion of macro ‘RAISE’
             RAISE (PyExc_RuntimeError, "Cannot find glReadPixels function.");
             ^~~~~
    src/_pygame.h:206:46: warning: right-hand operand of comma expression has no effect [-Wunused-value]
     #define RAISE(x,y) (PyErr_SetString((x), (y)), (PyObject*)NULL)
                        ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
    src/imageext.c:643:9: note: in expansion of macro ‘RAISE’
             RAISE (PyExc_MemoryError, "Cannot allocate enough memory for pixels.");
             ^~~~~
    src/_pygame.h:206:46: warning: right-hand operand of comma expression has no effect [-Wunused-value]
     #define RAISE(x,y) (PyErr_SetString((x), (y)), (PyObject*)NULL)
                        ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
    src/imageext.c:663:9: note: in expansion of macro ‘RAISE’
             RAISE (PyExc_SDLError, SDL_GetError ());
             ^~~~~
    gcc -pthread -shared -L/home/peter/.pyenv/versions/3.7.0/lib -L/home/peter/.pyenv/versions/3.7.0/lib build/temp.linux-x86_64-3.7/src/imageext.o -L/usr/lib/x86_64-linux-gnu -L/usr/lib/x86_64-linux-gnu -L/usr/lib/x86_64-linux-gnu -L/usr/lib/x86_64-linux-gnu -lSDL -lSDL_image -lpng -ljpeg -o build/lib.linux-x86_64-3.7/pygame/imageext.cpython-37m-x86_64-linux-gnu.so
    building 'pygame.font' extension
    gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -D_REENTRANT -DENABLE_NEWBUF=1 -I/usr/X11R6/include -I/usr/include/SDL -I/usr/include/SDL -I/home/peter/.pyenv/versions/3.7.0/include/python3.7m -c src/font.c -o build/temp.linux-x86_64-3.7/src/font.o
    src/font.c: In function ‘font_render’:
    src/font.c:390:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             if (strlen(astring) != Bytes_GET_SIZE(bytes)) {
                                 ^~
    src/font.c:417:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             if (strlen(astring) != Bytes_GET_SIZE(text)) {
                                 ^~
    In file included from src/pygame.h:32:0,
                     from src/font.c:31:
    src/font.c: In function ‘font_init’:
    src/_pygame.h:206:46: warning: right-hand operand of comma expression has no effect [-Wunused-value]
     #define RAISE(x,y) (PyErr_SetString((x), (y)), (PyObject*)NULL)
                        ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
    src/font.c:619:9: note: in expansion of macro ‘RAISE’
             RAISE(PyExc_SDLError, "font not initialized");
             ^~~~~
    src/_pygame.h:206:46: warning: right-hand operand of comma expression has no effect [-Wunused-value]
     #define RAISE(x,y) (PyErr_SetString((x), (y)), (PyObject*)NULL)
                        ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
    src/font.c:724:9: note: in expansion of macro ‘RAISE’
             RAISE(PyExc_RuntimeError, SDL_GetError());
             ^~~~~
    gcc -pthread -shared -L/home/peter/.pyenv/versions/3.7.0/lib -L/home/peter/.pyenv/versions/3.7.0/lib build/temp.linux-x86_64-3.7/src/font.o -L/usr/lib/x86_64-linux-gnu -L/usr/lib/x86_64-linux-gnu -lSDL -lSDL_ttf -o build/lib.linux-x86_64-3.7/pygame/font.cpython-37m-x86_64-linux-gnu.so
    building 'pygame.mixer' extension
    gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -D_REENTRANT -DENABLE_NEWBUF=1 -I/usr/X11R6/include -I/usr/include/SDL -I/usr/include/SDL -I/home/peter/.pyenv/versions/3.7.0/include/python3.7m -c src/mixer.c -o build/temp.linux-x86_64-3.7/src/mixer.o
    In file included from src/pygame.h:32:0,
                     from src/mixer.c:27:
    src/mixer.c: In function ‘_format_view_to_audio’:
    src/_pygame.h:206:46: warning: right-hand operand of comma expression has no effect [-Wunused-value]
     #define RAISE(x,y) (PyErr_SetString((x), (y)), (PyObject*)NULL)
                        ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
    src/mixer.c:136:9: note: in expansion of macro ‘RAISE’
             RAISE(PyExc_ValueError, "Array has unsupported item format");
             ^~~~~
    src/_pygame.h:206:46: warning: right-hand operand of comma expression has no effect [-Wunused-value]
     #define RAISE(x,y) (PyErr_SetString((x), (y)), (PyObject*)NULL)
                        ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
    src/mixer.c:165:13: note: in expansion of macro ‘RAISE’
                 RAISE(PyExc_ValueError, "Array has unsupported item format");
                 ^~~~~
    src/mixer.c: In function ‘_chunk_from_array’:
    src/_pygame.h:206:46: warning: right-hand operand of comma expression has no effect [-Wunused-value]
     #define RAISE(x,y) (PyErr_SetString((x), (y)), (PyObject*)NULL)
                        ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
    src/mixer.c:1363:9: note: in expansion of macro ‘RAISE’
             RAISE(PyExc_SDLError, "Mixer not initialized");
             ^~~~~
    src/_pygame.h:206:46: warning: right-hand operand of comma expression has no effect [-Wunused-value]
     #define RAISE(x,y) (PyErr_SetString((x), (y)), (PyObject*)NULL)
                        ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
    src/mixer.c:1371:13: note: in expansion of macro ‘RAISE’
                 RAISE(PyExc_ValueError,
                 ^~~~~
    src/_pygame.h:206:46: warning: right-hand operand of comma expression has no effect [-Wunused-value]
     #define RAISE(x,y) (PyErr_SetString((x), (y)), (PyObject*)NULL)
                        ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
    src/mixer.c:1378:13: note: in expansion of macro ‘RAISE’
                 RAISE(PyExc_ValueError,
                 ^~~~~
    src/_pygame.h:206:46: warning: right-hand operand of comma expression has no effect [-Wunused-value]
     #define RAISE(x,y) (PyErr_SetString((x), (y)), (PyObject*)NULL)
                        ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
    src/mixer.c:1383:13: note: in expansion of macro ‘RAISE’
                 RAISE(PyExc_ValueError,
                 ^~~~~
    src/mixer.c: In function ‘sound_init’:
    src/_pygame.h:206:46: warning: right-hand operand of comma expression has no effect [-Wunused-value]
     #define RAISE(x,y) (PyErr_SetString((x), (y)), (PyObject*)NULL)
                        ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
    src/mixer.c:1516:13: note: in expansion of macro ‘RAISE’
                 RAISE(PyExc_TypeError, arg_cnt_err_msg);
                 ^~~~~
    src/_pygame.h:206:46: warning: right-hand operand of comma expression has no effect [-Wunused-value]
     #define RAISE(x,y) (PyErr_SetString((x), (y)), (PyObject*)NULL)
                        ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
    src/mixer.c:1532:13: note: in expansion of macro ‘RAISE’
                 RAISE(PyExc_TypeError, arg_cnt_err_msg);
                 ^~~~~
    src/_pygame.h:206:46: warning: right-hand operand of comma expression has no effect [-Wunused-value]
     #define RAISE(x,y) (PyErr_SetString((x), (y)), (PyObject*)NULL)
                        ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
    src/mixer.c:1555:13: note: in expansion of macro ‘RAISE’
                 RAISE(PyExc_TypeError,
                 ^~~~~
    src/_pygame.h:206:46: warning: right-hand operand of comma expression has no effect [-Wunused-value]
     #define RAISE(x,y) (PyErr_SetString((x), (y)), (PyObject*)NULL)
                        ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
    src/mixer.c:1561:9: note: in expansion of macro ‘RAISE’
             RAISE(PyExc_TypeError, arg_cnt_err_msg);
             ^~~~~
    src/_pygame.h:206:46: warning: right-hand operand of comma expression has no effect [-Wunused-value]
     #define RAISE(x,y) (PyErr_SetString((x), (y)), (PyObject*)NULL)
                        ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
    src/mixer.c:1585:21: note: in expansion of macro ‘RAISE’
                         RAISE(PyExc_SDLError, SDL_GetError());
                         ^~~~~
    gcc -pthread -shared -L/home/peter/.pyenv/versions/3.7.0/lib -L/home/peter/.pyenv/versions/3.7.0/lib build/temp.linux-x86_64-3.7/src/mixer.o -L/usr/lib/x86_64-linux-gnu -L/usr/lib/x86_64-linux-gnu -lSDL -lSDL_mixer -o build/lib.linux-x86_64-3.7/pygame/mixer.cpython-37m-x86_64-linux-gnu.so
    building 'pygame.mixer_music' extension
    gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -D_REENTRANT -DENABLE_NEWBUF=1 -I/usr/X11R6/include -I/usr/include/SDL -I/usr/include/SDL -I/home/peter/.pyenv/versions/3.7.0/include/python3.7m -c src/music.c -o build/temp.linux-x86_64-3.7/src/music.o
    gcc -pthread -shared -L/home/peter/.pyenv/versions/3.7.0/lib -L/home/peter/.pyenv/versions/3.7.0/lib build/temp.linux-x86_64-3.7/src/music.o -L/usr/lib/x86_64-linux-gnu -L/usr/lib/x86_64-linux-gnu -lSDL -lSDL_mixer -o build/lib.linux-x86_64-3.7/pygame/mixer_music.cpython-37m-x86_64-linux-gnu.so
    building 'pygame.scrap' extension
    gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -D_REENTRANT -DENABLE_NEWBUF=1 -I/usr/X11R6/include -I/usr/include/SDL -I/home/peter/.pyenv/versions/3.7.0/include/python3.7m -c src/scrap.c -o build/temp.linux-x86_64-3.7/src/scrap.o
    In file included from src/scrap.c:60:0:
    src/scrap_x11.c: In function ‘pygame_scrap_get_types’:
    src/scrap_x11.c:842:35: warning: passing argument 2 of ‘PyDict_Next’ from incompatible pointer type [-Wincompatible-pointer-types]
             while (PyDict_Next (dict, &pos, &key, NULL))
                                       ^
    In file included from /home/peter/.pyenv/versions/3.7.0/include/python3.7m/Python.h:90:0,
                     from src/scrap.h:27,
                     from src/scrap.c:30:
    /home/peter/.pyenv/versions/3.7.0/include/python3.7m/dictobject.h:95:17: note: expected ‘Py_ssize_t * {aka long int *}’ but argument is of type ‘int *’
     PyAPI_FUNC(int) PyDict_Next(
                     ^~~~~~~~~~~
    gcc -pthread -shared -L/home/peter/.pyenv/versions/3.7.0/lib -L/home/peter/.pyenv/versions/3.7.0/lib build/temp.linux-x86_64-3.7/src/scrap.o -L/usr/lib/x86_64-linux-gnu -L/usr/lib/x86_64-linux-gnu -lSDL -lX11 -o build/lib.linux-x86_64-3.7/pygame/scrap.cpython-37m-x86_64-linux-gnu.so
    building 'pygame.pypm' extension
    gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -D_REENTRANT -DENABLE_NEWBUF=1 -I/usr/X11R6/include -I/usr/include/SDL -I/usr/include -I/usr/include -I/home/peter/.pyenv/versions/3.7.0/include/python3.7m -c src/pypm.c -o build/temp.linux-x86_64-3.7/src/pypm.o
    src/pypm.c: In function ‘__Pyx_ErrRestore’:
    src/pypm.c:4976:18: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_type’; did you mean ‘curexc_type’?
         if ((tstate->exc_type != NULL) & (tstate->exc_type != Py_None)) {
                      ^~~~~~~~
                      curexc_type
    src/pypm.c:4976:47: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_type’; did you mean ‘curexc_type’?
         if ((tstate->exc_type != NULL) & (tstate->exc_type != Py_None)) {
                                                   ^~~~~~~~
                                                   curexc_type
    src/pypm.c:4977:28: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_type’; did you mean ‘curexc_type’?
             tmp_type = tstate->exc_type;
                                ^~~~~~~~
                                curexc_type
    src/pypm.c:4978:29: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_value’; did you mean ‘curexc_value’?
             tmp_value = tstate->exc_value;
                                 ^~~~~~~~~
                                 curexc_value
    src/pypm.c:4979:26: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
             tmp_tb = tstate->exc_traceback;
                              ^~~~~~~~~~~~~
                              curexc_traceback
    src/pypm.c:4982:17: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_type’; did you mean ‘curexc_type’?
             tstate->exc_type = 0;
                     ^~~~~~~~
                     curexc_type
    src/pypm.c:4983:17: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_value’; did you mean ‘curexc_value’?
             tstate->exc_value = 0;
                     ^~~~~~~~~
                     curexc_value
    src/pypm.c:4984:17: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
             tstate->exc_traceback = 0;
                     ^~~~~~~~~~~~~
                     curexc_traceback
    At top level:
    src/pypm.c:2845:13: warning: ‘__pyx_doc_4pypm_5Input___dealloc__’ defined but not used [-Wunused-variable]
     static char __pyx_doc_4pypm_5Input___dealloc__[] = "Close midi device if still open when the instance is destroyed.";
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    src/pypm.c:2673:13: warning: ‘__pyx_doc_4pypm_5Input___init__’ defined but not used [-Wunused-variable]
     static char __pyx_doc_4pypm_5Input___init__[] = "Instantiate MIDI input stream object.";
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    src/pypm.c:1359:13: warning: ‘__pyx_doc_4pypm_6Output___dealloc__’ defined but not used [-Wunused-variable]
     static char __pyx_doc_4pypm_6Output___dealloc__[] = "Close midi device if still open when the instance is destroyed.";
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    src/pypm.c:1091:13: warning: ‘__pyx_doc_4pypm_6Output___init__’ defined but not used [-Wunused-variable]
     static char __pyx_doc_4pypm_6Output___init__[] = "Instantiate MIDI output stream object.";
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    error: command 'gcc' failed with exit status 1

    ----------------------------------------
Command "/home/peter/.pyenv/versions/3.7.0/bin/python3.7 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-l6kc_seb/pygame/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-nmz05uhl/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-install-l6kc_seb/pygame/    

Update: Pygame 1.9.4 has been released and you can download and install it with pip again.


There are no official precompiled pygame packages for Python 3.7 available yet, so you have to use Python 3.6 until the new packages are released.

Windows users can already download and install a pygame wheel file from: https://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM