2014-02-11 174 views
8

我試圖使用以下命令安裝pybluezMac 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

山獅也一樣的安裝錯誤。

編輯:

與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 Writing /Library/Python/2.7/site-packages/PyBluez-0.20-py2.7.egg-info

當我試圖導入藍牙我得到了一個異常

這裏是輸出

>>>進口藍牙 回溯(最近通話最後一個): 文件「」,1號線,在 文件 「藍牙/ __ init__.py」,第47行,在 從OSX進口* 文件 「藍牙/ osx.py」,3號線,在 提高NotImplementedError NotImplementedError

Fllowing鏈接提到有關錯誤

python bluetooth discovery with pybluez

應該怎樣做在Mac

+1

嗨伴侶,有你有沒有和任何運氣?我掛了完全相同的問題。 :( –

回答

6

PyBluez安裝pybluez僅適用於PC。嘗試lightblue

下載並安裝主分發: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") 

通過this discussion