簡體   English   中英

Mac OS上的pybluez安裝錯誤

[英]pybluez installation errors on Mac OS

我嘗試使用以下命令安裝pybluez

pip install pybluez

sudo easy_install pybluez

但對於這兩個命令,我最終都會出錯。

環境:

Mac OSX 10.9.1
Python 2.7

點子日志:

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

任何人都可以在小牛隊上安裝pybluez

Mountain Lion上也有同樣的安裝錯誤。

編輯:

用IOBluetoothDeviceRef替換了IOBluetoothDeviceInquiryRef並消除了錯誤。 並且由於警告而能夠在Mac上安裝。

使用sudo python setup.py install

這是輸出

運行安裝運行構建運行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-信息

當我嘗試導入藍牙時,我得到了一個例外

這是輸出

>>> import bluetooth Traceback(最近一次調用last):文件“”,第1行,在文件“bluetooth / __ init__.py”,第47行,來自osx import *文件“bluetooth / osx.py”,第3行, in raise NotImplementedError NotImplementedError

Fllowing link提到了錯誤

用pybluez發現python藍牙

在Mac上安裝pybluez應該怎么做

PyBluez僅適用於PC。 試試淺藍色

下載並安裝主發行版: https//github.com/postskolkovo/lightblue-0.4

cd ~/Downloads/lightblue-0.4-master
sudo python setup.py install

如果您收到錯誤:

Check dependencies
No architectures to compile for (ARCHS=$(NATIVE_ARCH_ACTUAL), VALID_ARCHS=i386 x86_64).

** INSTALL FAILED **

你必須打開setup.py並更改:

os.system("xcodebuild install -arch '$(NATIVE_ARCH_ACTUAL)' -target LightAquaBlue -configuration Release DSTROOT=/ INSTALL_PATH=/Library/Frameworks DEPLOYMENT_LOCATION=YES")

至:

os.system("xcodebuild install -arch 'i386' -target LightAquaBlue -configuration Release DSTROOT=/ INSTALL_PATH=/Library/Frameworks DEPLOYMENT_LOCATION=YES")

通過這個討論

似乎PyPI上的版本已經過時,但使用GitHub存儲庫中的最新版本可以完美地運行。

Shell /命令行

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

requirements.txt

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

我的環境

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM