Reputation: 1890
I tried to install pybluez using following commands.
pip install pybluez
sudo easy_install pybluez
But for both commands I end up in errors.
Environment:
Mac OSX 10.9.1
Python 2.7
Pip Logs :
cc -fno-strict-aliasing -fno-common -dynamic -arch x86_64 -arch i386 -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -mno-fused-madd -DENABLE_DTRACE -DMACOSX -DNDEBUG -Wall -Wstrict-prototypes -Wshorten-64-to-32 -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch x86_64 -arch i386 -pipe -I/System/Library/Frameworks/IOBluetooth.framework/Headers -I/System/Library/Frameworks/CoreFoundation.framework/Headers -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c osx/_osxbt.c -o build/temp.macosx-10.9-intel-2.7/osx/_osxbt.o
clang: warning: argument unused during compilation: '-mno-fused-madd'
osx/_osxbt.c:676:5: error: unknown type name 'IOBluetoothDeviceInquiryRef'; did you mean 'IOBluetoothDeviceRef'?
IOBluetoothDeviceInquiryRef inquiry;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
IOBluetoothDeviceRef
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/IOBluetooth.framework/Headers/IOBluetoothUserLib.h:34:47: note: 'IOBluetoothDeviceRef' declared here
typedef struct OpaqueIOBluetoothObjectRef * IOBluetoothDeviceRef;
^
osx/_osxbt.c:688:17: error: unknown type name 'IOBluetoothDeviceInquiryRef'; did you mean 'IOBluetoothDeviceRef'?
IOBluetoothDeviceInquiryRef inquiryRef,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
IOBluetoothDeviceRef
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/IOBluetooth.framework/Headers/IOBluetoothUserLib.h:34:47: note: 'IOBluetoothDeviceRef' declared here
typedef struct OpaqueIOBluetoothObjectRef * IOBluetoothDeviceRef;
^
osx/_osxbt.c:703:19: warning: implicit declaration of function 'IOBluetoothDeviceInquiryCreateWithCallbackRefCon' is invalid in C99 [-Wimplicit-function-declaration]
dd->inquiry = IOBluetoothDeviceInquiryCreateWithCallbackRefCon (&dd);
^
osx/_osxbt.c:703:17: warning: incompatible integer to pointer conversion assigning to 'IOBluetoothDeviceRef' (aka 'struct OpaqueIOBluetoothObjectRef *') from 'int' [-Wint-conversion]
dd->inquiry = IOBluetoothDeviceInquiryCreateWithCallbackRefCon (&dd);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
osx/_osxbt.c:705:5: warning: implicit declaration of function 'IOBluetoothDeviceInquirySetCompleteCallback' is invalid in C99 [-Wimplicit-function-declaration]
IOBluetoothDeviceInquirySetCompleteCallback (dd->inquiry,
^
osx/_osxbt.c:717:5: warning: implicit declaration of function 'IOBluetoothDeviceInquiryStart' is invalid in C99 [-Wimplicit-function-declaration]
IOBluetoothDeviceInquiryStart (dd->inquiry);
^
osx/_osxbt.c:721:5: warning: implicit declaration of function 'IOBluetoothDeviceInquiryDelete' is invalid in C99 [-Wimplicit-function-declaration]
IOBluetoothDeviceInquiryDelete (dd->inquiry);
^
5 warnings and 2 errors generated.
error: command 'cc' failed with exit status 1
----------------------------------------
Cleaning up...
Removing temporary dir /private/var/folders/f0/ldyq8xbx0fvckg001kk64j7r0000gn/T/pip_build_~...
Command /usr/bin/python -c "import setuptools, tokenize;__file__='/private/var/folders/f0/ldyq8xbx0fvckg001kk64j7r0000gn/T/pip_build_~/pybluez/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/f0/ldyq8xbx0fvckg001kk64j7r0000gn/T/pip-j1ASQD-record/install-record.txt --single-version-externally-managed --compile failed with error code 1 in /private/var/folders/f0/ldyq8xbx0fvckg001kk64j7r0000gn/T/pip_build_~/pybluez
Exception information:
Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/pip-1.5.2-py2.7.egg/pip/basecommand.py", line 122, in main
status = self.run(options, args)
File "/Library/Python/2.7/site-packages/pip-1.5.2-py2.7.egg/pip/commands/install.py", line 279, in run
requirement_set.install(install_options, global_options, root=options.root_path)
File "/Library/Python/2.7/site-packages/pip-1.5.2-py2.7.egg/pip/req.py", line 1380, in install
requirement.install(install_options, global_options, *args, **kwargs)
File "/Library/Python/2.7/site-packages/pip-1.5.2-py2.7.egg/pip/req.py", line 699, in install
cwd=self.source_dir, filter_stdout=self._filter_install, show_stdout=False)
File "/Library/Python/2.7/site-packages/pip-1.5.2-py2.7.egg/pip/util.py", line 697, in call_subprocess
% (command_desc, proc.returncode, cwd))
InstallationError: Command /usr/bin/python -c "import setuptools, tokenize;__file__='/private/var/folders/f0/ldyq8xbx0fvckg001kk64j7r0000gn/T/pip_build_~/pybluez/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/f0/ldyq8xbx0fvckg001kk64j7r0000gn/T/pip-j1ASQD-record/install-record.txt --single-version-externally-managed --compile failed with error code 1 in /private/var/folders/f0/ldyq8xbx0fvckg001kk64j7r0000gn/T/pip_build_~/pybluez
**easy_install Logs**
Reading http://pypi.python.org/simple/pybluez/
Best match: PyBluez 0.20
Downloading https://pypi.python.org/packages/source/P/PyBluez/PyBluez-0.20.zip#md5=79fad332df63b67a5f9a8d25042fb2a8
Processing PyBluez-0.20.zip
Running PyBluez-0.20/setup.py -q bdist_egg --dist-dir /tmp/easy_install-Y5Y9H1/PyBluez-0.20/egg-dist-tmp-kwjDlw
clang: warning: argument unused during compilation: '-mno-fused-madd'
**osx/_osxbt.c:676:5: error: unknown type name 'IOBluetoothDeviceInquiryRef'; did you mean
'IOBluetoothDeviceRef'?**
IOBluetoothDeviceInquiryRef inquiry;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
IOBluetoothDeviceRef
**/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/IOBluetooth.framework/Headers/IOBluetoothUserLib.h:34:47: note:**
'IOBluetoothDeviceRef' declared here
typedef struct OpaqueIOBluetoothObjectRef * IOBluetoothDeviceRef;
^
**osx/_osxbt.c:688:17: error: unknown type name 'IOBluetoothDeviceInquiryRef'; did you mean
'IOBluetoothDeviceRef'?**
IOBluetoothDeviceInquiryRef inquiryRef,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
IOBluetoothDeviceRef
**/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/IOBluetooth.framework/Headers/IOBluetoothUserLib.h:34:47: note:**
'IOBluetoothDeviceRef' declared here
typedef struct OpaqueIOBluetoothObjectRef * IOBluetoothDeviceRef;
^
**osx/_osxbt.c:703:19: warning: implicit declaration of function
'IOBluetoothDeviceInquiryCreateWithCallbackRefCon' is invalid in C99
[-Wimplicit-function-declaration]**
dd->inquiry = IOBluetoothDeviceInquiryCreateWithCallbackRefCon (&dd);
^
**osx/_osxbt.c:703:17: warning: incompatible integer to pointer conversion assigning to
'IOBluetoothDeviceRef' (aka 'struct OpaqueIOBluetoothObjectRef *') from 'int' [-Wint-conversion]**
dd->inquiry = IOBluetoothDeviceInquiryCreateWithCallbackRefCon (&dd);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
**osx/_osxbt.c:705:5: warning: implicit declaration of function
'IOBluetoothDeviceInquirySetCompleteCallback' is invalid in C99
[-Wimplicit-function-declaration]**
IOBluetoothDeviceInquirySetCompleteCallback (dd->inquiry,
^
**osx/_osxbt.c:717:5: warning: implicit declaration of function 'IOBluetoothDeviceInquiryStart' is
invalid in C99 [-Wimplicit-function-declaration]**
IOBluetoothDeviceInquiryStart (dd->inquiry);
^
**osx/_osxbt.c:721:5: warning: implicit declaration of function 'IOBluetoothDeviceInquiryDelete' is
invalid in C99 [-Wimplicit-function-declaration]**
IOBluetoothDeviceInquiryDelete (dd->inquiry);
^
5 warnings and 2 errors generated.
error: Setup script exited with error: command 'cc' failed with exit status 1
Any one able to install pybluez on Mavericks ?
On Mountain Lion also the same installation errors.
Edit :
Replaced IOBluetoothDeviceInquiryRef with IOBluetoothDeviceRef and got rid of the errors. and able to install on Mac because of the warnings.
Installed using sudo python setup.py install
Here is the output
running install running build running build_py running build_ext running install_lib running install_egg_info Removing /Library/Python/2.7/site-packages/PyBluez-0.20-py2.7.egg-info Writing /Library/Python/2.7/site-packages/PyBluez-0.20-py2.7.egg-info
When I tried to import bluetooth I got an exception
Here is the output
>>> import bluetooth Traceback (most recent call last): File "", line 1, in File "bluetooth/__init__.py", line 47, in from osx import * File "bluetooth/osx.py", line 3, in raise NotImplementedError NotImplementedError
Fllowing link mentioned about the error
python bluetooth discovery with pybluez
What should be done to install pybluez on Mac
Upvotes: 10
Views: 12152
Reputation: 295
A hint for getting pybluez installed;
BUT please note - I found this a few minutes ago and have yet to try it out...
$ python -m pip install pybluez2 Defaulting to user installation because normal site-packages is not writeable Collecting pybluez2 Downloading pybluez2-0.46-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (191 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 191.1/191.1 kB 1.6 MB/s eta 0:00:00 Installing collected packages: pybluez2 Successfully installed pybluez2-0.46
INFO, if it matters:
Ubuntu 20.04.6 LTS (Focal Fossa) <-$ source /etc/os-release; echo $NAME $VERSION
Upvotes: 0
Reputation: 14985
It appears that the releases on PyPI are very outdated, but using the latest from the GitHub repository works perfectly.
$ pip install git+https://github.com/pybluez/pybluez.git
git+https://github.com/pybluez/pybluez.git
Upvotes: 6
Reputation: 7124
PyBluez is only for PC. Try lightblue
Download and install the master distribution: https://github.com/postskolkovo/lightblue-0.4
cd ~/Downloads/lightblue-0.4-master
sudo python setup.py install
If you get the error:
Check dependencies
No architectures to compile for (ARCHS=$(NATIVE_ARCH_ACTUAL), VALID_ARCHS=i386 x86_64).
** INSTALL FAILED **
you'll have to open up setup.py and change:
os.system("xcodebuild install -arch '$(NATIVE_ARCH_ACTUAL)' -target LightAquaBlue -configuration Release DSTROOT=/ INSTALL_PATH=/Library/Frameworks DEPLOYMENT_LOCATION=YES")
to:
os.system("xcodebuild install -arch 'i386' -target LightAquaBlue -configuration Release DSTROOT=/ INSTALL_PATH=/Library/Frameworks DEPLOYMENT_LOCATION=YES")
via this discussion
Upvotes: 6