pyobjus: `pip install pyobjus` fails on Mac OSX

Running pip install pyobjus fails on mac with the following errors:

(mb_pc_env) Vik-MBP:multibeam_pointcloud_correction vik748$ pip install pyobjus
Collecting pyobjus
  Using cached https://files.pythonhosted.org/packages/cb/9e/6425d66cf66892ee99ebdc86204c825d6817458328b6cdc3a6c51ad152d1/pyobjus-1.1.0.tar.gz
Building wheels for collected packages: pyobjus
  Running setup.py bdist_wheel for pyobjus ... error
  Complete output from command /Users/vik748/anaconda3/envs/mb_pc_env/bin/python -u -c "import setuptools, tokenize;__file__='/private/var/folders/qq/p75542c55gz41w8ycl_crgq40000gn/T/pip-install-6mtj74f6/pyobjus/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /private/var/folders/qq/p75542c55gz41w8ycl_crgq40000gn/T/pip-wheel-ldrgr6ie --python-tag cp35:
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.macosx-10.6-x86_64-3.5
  copying setup.py -> build/lib.macosx-10.6-x86_64-3.5
  creating build/lib.macosx-10.6-x86_64-3.5/pyobjus
  copying pyobjus/dylib_manager.py -> build/lib.macosx-10.6-x86_64-3.5/pyobjus
  copying pyobjus/protocols.py -> build/lib.macosx-10.6-x86_64-3.5/pyobjus
  copying pyobjus/__init__.py -> build/lib.macosx-10.6-x86_64-3.5/pyobjus
  copying pyobjus/objc_py_types.py -> build/lib.macosx-10.6-x86_64-3.5/pyobjus
  creating build/lib.macosx-10.6-x86_64-3.5/pyobjus/consts
  copying pyobjus/consts/__init__.py -> build/lib.macosx-10.6-x86_64-3.5/pyobjus/consts
  copying pyobjus/consts/corebluetooth.py -> build/lib.macosx-10.6-x86_64-3.5/pyobjus/consts
  running build_ext
  cythoning pyobjus/pyobjus.pyx to pyobjus/pyobjus.c
  /Users/vik748/anaconda3/envs/mb_pc_env/lib/python3.5/site-packages/Cython/Compiler/Main.py:369: FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! File: /private/var/folders/qq/p75542c55gz41w8ycl_crgq40000gn/T/pip-install-6mtj74f6/pyobjus/pyobjus/pyobjus.pyx
    tree = Parsing.p_module(s, pxd, full_module_name)
  building 'pyobjus' extension
  creating build/temp.macosx-10.6-x86_64-3.5
  creating build/temp.macosx-10.6-x86_64-3.5/pyobjus
  gcc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/Users/vik748/anaconda3/envs/mb_pc_env/include -arch x86_64 -I/Users/vik748/anaconda3/envs/mb_pc_env/include/python3.5m -c pyobjus/pyobjus.c -o build/temp.macosx-10.6-x86_64-3.5/pyobjus/pyobjus.o
  In file included from pyobjus/pyobjus.c:608:
  pyobjus/_runtime.h:33:23: error: too many arguments to function call, expected 0, have 2
    return objc_msgSend(pool, sel_registerName("init"));
           ~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/objc/message.h:62:1: note: 'objc_msgSend' declared here
  OBJC_EXPORT void
  ^
  /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/objc/objc-api.h:236:25: note: expanded from macro 'OBJC_EXPORT'
  #   define OBJC_EXPORT  OBJC_EXTERN OBJC_VISIBLE
                          ^
  /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/objc/objc-api.h:225:28: note: expanded from macro 'OBJC_EXTERN'
  #       define OBJC_EXTERN extern
                             ^
  In file included from pyobjus/pyobjus.c:608:
  pyobjus/_runtime.h:37:22: error: too many arguments to function call, expected 0, have 2
    (void)objc_msgSend(pool, sel_registerName("drain"));
          ~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/objc/message.h:62:1: note: 'objc_msgSend' declared here
  OBJC_EXPORT void
  ^
  /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/objc/objc-api.h:236:25: note: expanded from macro 'OBJC_EXPORT'
  #   define OBJC_EXPORT  OBJC_EXTERN OBJC_VISIBLE
                          ^
  /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/objc/objc-api.h:225:28: note: expanded from macro 'OBJC_EXTERN'
  #       define OBJC_EXTERN extern
                             ^
  pyobjus/pyobjus.c:24591:25: error: too many arguments to function call, expected 0, have 2
      (void)(objc_msgSend(__pyx_v_self->o_instance, sel_registerName(((char *)"release"))));
             ~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/objc/message.h:62:1: note: 'objc_msgSend' declared here
  OBJC_EXPORT void
  ^
  /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/objc/objc-api.h:236:25: note: expanded from macro 'OBJC_EXPORT'
  #   define OBJC_EXPORT  OBJC_EXTERN OBJC_VISIBLE
                          ^
  /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/objc/objc-api.h:225:28: note: expanded from macro 'OBJC_EXTERN'
  #       define OBJC_EXTERN extern
                             ^
  pyobjus/pyobjus.c:24668:45: error: too many arguments to function call, expected 0, have 2
      __pyx_v_self->o_instance = objc_msgSend(__pyx_v_self->o_instance, sel_registerName(((char *)"retain")));
                                 ~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/objc/message.h:62:1: note: 'objc_msgSend' declared here
  OBJC_EXPORT void
  ^
  /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/objc/objc-api.h:236:25: note: expanded from macro 'OBJC_EXPORT'
  #   define OBJC_EXPORT  OBJC_EXTERN OBJC_VISIBLE
                          ^
  /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/objc/objc-api.h:225:28: note: expanded from macro 'OBJC_EXTERN'
  #       define OBJC_EXTERN extern
                             ^
  4 errors generated.
  error: command 'gcc' failed with exit status 1
  
  ----------------------------------------
  Failed building wheel for pyobjus
  Running setup.py clean for pyobjus
Failed to build pyobjus
Installing collected packages: pyobjus
  Running setup.py install for pyobjus ... error
    Complete output from command /Users/vik748/anaconda3/envs/mb_pc_env/bin/python -u -c "import setuptools, tokenize;__file__='/private/var/folders/qq/p75542c55gz41w8ycl_crgq40000gn/T/pip-install-6mtj74f6/pyobjus/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /private/var/folders/qq/p75542c55gz41w8ycl_crgq40000gn/T/pip-record-5jpuhtqs/install-record.txt --single-version-externally-managed --compile:
    running install
    running build
    running build_py
    creating build
    creating build/lib.macosx-10.6-x86_64-3.5
    copying setup.py -> build/lib.macosx-10.6-x86_64-3.5
    creating build/lib.macosx-10.6-x86_64-3.5/pyobjus
    copying pyobjus/dylib_manager.py -> build/lib.macosx-10.6-x86_64-3.5/pyobjus
    copying pyobjus/protocols.py -> build/lib.macosx-10.6-x86_64-3.5/pyobjus
    copying pyobjus/__init__.py -> build/lib.macosx-10.6-x86_64-3.5/pyobjus
    copying pyobjus/objc_py_types.py -> build/lib.macosx-10.6-x86_64-3.5/pyobjus
    creating build/lib.macosx-10.6-x86_64-3.5/pyobjus/consts
    copying pyobjus/consts/__init__.py -> build/lib.macosx-10.6-x86_64-3.5/pyobjus/consts
    copying pyobjus/consts/corebluetooth.py -> build/lib.macosx-10.6-x86_64-3.5/pyobjus/consts
    running build_ext
    skipping 'pyobjus/pyobjus.c' Cython extension (up-to-date)
    building 'pyobjus' extension
    creating build/temp.macosx-10.6-x86_64-3.5
    creating build/temp.macosx-10.6-x86_64-3.5/pyobjus
    gcc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/Users/vik748/anaconda3/envs/mb_pc_env/include -arch x86_64 -I/Users/vik748/anaconda3/envs/mb_pc_env/include/python3.5m -c pyobjus/pyobjus.c -o build/temp.macosx-10.6-x86_64-3.5/pyobjus/pyobjus.o
    In file included from pyobjus/pyobjus.c:608:
    pyobjus/_runtime.h:33:23: error: too many arguments to function call, expected 0, have 2
      return objc_msgSend(pool, sel_registerName("init"));
             ~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/objc/message.h:62:1: note: 'objc_msgSend' declared here
    OBJC_EXPORT void
    ^
    /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/objc/objc-api.h:236:25: note: expanded from macro 'OBJC_EXPORT'
    #   define OBJC_EXPORT  OBJC_EXTERN OBJC_VISIBLE
                            ^
    /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/objc/objc-api.h:225:28: note: expanded from macro 'OBJC_EXTERN'
    #       define OBJC_EXTERN extern
                               ^
    In file included from pyobjus/pyobjus.c:608:
    pyobjus/_runtime.h:37:22: error: too many arguments to function call, expected 0, have 2
      (void)objc_msgSend(pool, sel_registerName("drain"));
            ~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/objc/message.h:62:1: note: 'objc_msgSend' declared here
    OBJC_EXPORT void
    ^
    /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/objc/objc-api.h:236:25: note: expanded from macro 'OBJC_EXPORT'
    #   define OBJC_EXPORT  OBJC_EXTERN OBJC_VISIBLE
                            ^
    /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/objc/objc-api.h:225:28: note: expanded from macro 'OBJC_EXTERN'
    #       define OBJC_EXTERN extern
                               ^
    pyobjus/pyobjus.c:24591:25: error: too many arguments to function call, expected 0, have 2
        (void)(objc_msgSend(__pyx_v_self->o_instance, sel_registerName(((char *)"release"))));
               ~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/objc/message.h:62:1: note: 'objc_msgSend' declared here
    OBJC_EXPORT void
    ^
    /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/objc/objc-api.h:236:25: note: expanded from macro 'OBJC_EXPORT'
    #   define OBJC_EXPORT  OBJC_EXTERN OBJC_VISIBLE
                            ^
    /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/objc/objc-api.h:225:28: note: expanded from macro 'OBJC_EXTERN'
    #       define OBJC_EXTERN extern
                               ^
    pyobjus/pyobjus.c:24668:45: error: too many arguments to function call, expected 0, have 2
        __pyx_v_self->o_instance = objc_msgSend(__pyx_v_self->o_instance, sel_registerName(((char *)"retain")));
                                   ~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/objc/message.h:62:1: note: 'objc_msgSend' declared here
    OBJC_EXPORT void
    ^
    /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/objc/objc-api.h:236:25: note: expanded from macro 'OBJC_EXPORT'
    #   define OBJC_EXPORT  OBJC_EXTERN OBJC_VISIBLE
                            ^
    /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/objc/objc-api.h:225:28: note: expanded from macro 'OBJC_EXTERN'
    #       define OBJC_EXTERN extern
                               ^
    4 errors generated.
    error: command 'gcc' failed with exit status 1
    
    ----------------------------------------

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 15 (5 by maintainers)

Most upvoted comments

what worked for me was: download the zip of the repo and unzip. Open the pyobjus folder in terminal and run this command: python setup.py install

@vik748. Thanks, but it works for you. So it’s really just sanderlands issues that are unresolved?

He installed from master, not pypi, so I assume it’s fixed and just not released. Hence my suggestion of releasing said fix.

This issue got fixed by https://github.com/kivy/pyobjus/commit/a10564c1ad3187518cc68855f9a6395e66aa08d1

Building from master should work. It simply needs a release.