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)
what worked for me was: download the zip of the repo and unzip. Open the
pyobjusfolder in terminal and run this command:python setup.py installHe 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.