简体   繁体   English

Mac OS上的pybluez安装错误

[英]pybluez installation errors on Mac OS

I tried to install pybluez using following commands. 我尝试使用以下命令安装pybluez

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 ? 任何人都可以在小牛队上安装pybluez

On Mountain Lion also the same installation errors. Mountain Lion上也有同样的安装错误。

Edit : 编辑:

Replaced IOBluetoothDeviceInquiryRef with IOBluetoothDeviceRef and got rid of the errors. 用IOBluetoothDeviceRef替换了IOBluetoothDeviceInquiryRef并消除了错误。 and able to install on Mac because of the warnings. 并且由于警告而能够在Mac上安装。

Installed using sudo python setup.py install 使用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 运行安装运行构建运行build_py运行build_ext运行install_lib运行install_egg_info正在删除/Library/Python/2.7/site-packages/PyBluez-0.20-py2.7.egg-info编写/Library/Python/2.7/site-packages/PyBluez-0.20 -py2.7.egg-信息

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 >>> import bluetooth Traceback(最近一次调用last):文件“”,第1行,在文件“bluetooth / __ init__.py”,第47行,来自osx import *文件“bluetooth / osx.py”,第3行, in raise NotImplementedError NotImplementedError

Fllowing link mentioned about the error Fllowing link提到了错误

python bluetooth discovery with pybluez 用pybluez发现python蓝牙

What should be done to install pybluez on Mac 在Mac上安装pybluez应该怎么做

PyBluez is only for PC. PyBluez仅适用于PC。 Try lightblue 试试浅蓝色

Download and install the master distribution: https://github.com/postskolkovo/lightblue-0.4 下载并安装主发行版: 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: 你必须打开setup.py并更改:

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 通过这个讨论

It appears that the releases on PyPI are very outdated, but using the latest from the GitHub repository works perfectly. 似乎PyPI上的版本已经过时,但使用GitHub存储库中的最新版本可以完美地运行。

Shell / Command Line Shell /命令行

$ pip install git+https://github.com/pybluez/pybluez.git

requirements.txt requirements.txt

git+https://github.com/pybluez/pybluez.git

My Environment 我的环境

  • 2018 MacBook Pro 2018年MacBook Pro
  • Python 3.7.4 Python 3.7.4
  • MacOS Mojave (10.14.6) MacOS Mojave(10.14.6)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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