2

Im trying to install Wireless-radar using the command sudo pip install wireless-radar. I've tried the command multiple times and I've gotten the same error each time.

What am I doing wrong and what should I do to fix it?

I'm using a MacBook Pro 2015 running MacOS 10.13.1

The version of Python that I am using is 2.7.10

Here's the complete output for the command.

Requirement already satisfied: wireless-radar in /Library/Python/2.7/site-packages/wireless_radar-0.2.2-py2.7.egg
Collecting scapy (from wireless-radar)
  Using cached scapy-2.3.3.tgz
Collecting netaddr (from wireless-radar)
  Downloading netaddr-0.7.19-py2.py3-none-any.whl (1.6MB)
    100% |████████████████████████████████| 1.6MB 482kB/s 
Collecting python_wifi>=0.5.0 (from wireless-radar)
  Downloading python-wifi-0.6.1.tar.bz2 (73kB)
    100% |████████████████████████████████| 81kB 1.3MB/s 
Collecting pybluez (from wireless-radar)
  Downloading PyBluez-0.22.zip (109kB)
    100% |████████████████████████████████| 112kB 45kB/s 
Building wheels for collected packages: scapy, python-wifi, pybluez
  Running setup.py bdist_wheel for scapy ... done
  Stored in directory: /Users/matthew/Library/Caches/pip/wheels/bd/cf/05/d5abc9b4434f39ffe231517dfb8dab96241fef6a99459051f9
  Running setup.py bdist_wheel for python-wifi ... done
  Stored in directory: /Users/matthew/Library/Caches/pip/wheels/3c/e1/4c/7bf310130cf8817e31716e49146f738410c929ff1952af3081
  Running setup.py bdist_wheel for pybluez ... error
  Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/private/var/folders/6d/7_lbk_0n6253nqmdsvdbnz600000gn/T/pip-build-gobwaR/pybluez/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 /var/folders/6d/7_lbk_0n6253nqmdsvdbnz600000gn/T/tmpnl9CZ5pip-wheel- --python-tag cp27:
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.macosx-10.13-intel-2.7
  creating build/lib.macosx-10.13-intel-2.7/bluetooth
  copying bluetooth/btcommon.py -> build/lib.macosx-10.13-intel-2.7/bluetooth
  copying bluetooth/ble.py -> build/lib.macosx-10.13-intel-2.7/bluetooth
  copying bluetooth/__init__.py -> build/lib.macosx-10.13-intel-2.7/bluetooth
  copying bluetooth/bluez.py -> build/lib.macosx-10.13-intel-2.7/bluetooth
  copying bluetooth/msbt.py -> build/lib.macosx-10.13-intel-2.7/bluetooth
  copying bluetooth/widcomm.py -> build/lib.macosx-10.13-intel-2.7/bluetooth
  copying bluetooth/osx.py -> build/lib.macosx-10.13-intel-2.7/bluetooth
  running build_ext
  building 'bluetooth._osxbt' extension
  creating build/temp.macosx-10.13-intel-2.7
  creating build/temp.macosx-10.13-intel-2.7/osx
  cc -fno-strict-aliasing -fno-common -dynamic -arch x86_64 -arch i386 -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -DENABLE_DTRACE -DMACOSX -DNDEBUG -Wall -Wstrict-prototypes -Wshorten-64-to-32 -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch i386 -arch x86_64 -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.13-intel-2.7/osx/_osxbt.o
  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.13.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.13.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:19: warning: this function declaration is not a prototype [-Wstrict-prototypes]
  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:705:5: warning: this function declaration is not a prototype [-Wstrict-prototypes]
  osx/_osxbt.c:717:5: warning: implicit declaration of function 'IOBluetoothDeviceInquiryStart' is invalid in C99 [-Wimplicit-function-declaration]
      IOBluetoothDeviceInquiryStart (dd->inquiry);
      ^
  osx/_osxbt.c:717:5: warning: this function declaration is not a prototype [-Wstrict-prototypes]
  osx/_osxbt.c:721:5: warning: implicit declaration of function 'IOBluetoothDeviceInquiryDelete' is invalid in C99 [-Wimplicit-function-declaration]
      IOBluetoothDeviceInquiryDelete (dd->inquiry);
      ^
  osx/_osxbt.c:721:5: warning: this function declaration is not a prototype [-Wstrict-prototypes]
  9 warnings and 2 errors generated.
  error: command 'cc' failed with exit status 1

  ----------------------------------------
  Failed building wheel for pybluez
  Running setup.py clean for pybluez
Successfully built scapy python-wifi
Failed to build pybluez
Installing collected packages: scapy, netaddr, python-wifi, pybluez
Exception:
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/commands/install.py", line 342, in run
    prefix=options.prefix_path,
  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/req/req_set.py", line 784, in install
    **kwargs
  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/req/req_install.py", line 851, in install
    self.move_wheel_files(self.source_dir, root=root, prefix=prefix)
  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/req/req_install.py", line 1064, in move_wheel_files
    isolated=self.isolated,
  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/wheel.py", line 345, in move_wheel_files
    clobber(source, lib_dir, True)
  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/wheel.py", line 316, in clobber
    ensure_dir(destdir)
  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/utils/__init__.py", line 83, in ensure_dir
    os.makedirs(path)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/os.py", line 157, in makedirs
    mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/scapy-2.3.3.dist-info'
Matthew N
  • 359
  • 4
  • 14
  • Says pretty clearly you've got a permission denied error. Either something has locked that file or you need elevated rights. I don't use macs, but they have a terminal system right? If you can open a terminal and navigate to the directory maybe you can change the permission of the directory. My guess would be maybe you installed something else that installed the same thing but you did it as admin or something silly. – FredMan Dec 28 '17 at 03:24
  • @FredMan adding sudo to the beginning should give it root permissions so I don't understand why it's giving me a permission denied error. – Matthew N Dec 28 '17 at 03:25
  • I'm not a pip master, but sudo and pip don't mix well. There's a rabbit hole you can go down, but you may try what brian describes here in the first comment: https://stackoverflow.com/questions/15028648/is-it-acceptable-and-safe-to-run-pip-install-under-sudo cd /tmp; sudo pip install foo The claim someone has made is that pip attempts to do a write to some locations as a user other than the one that invoked the command in the first place, and thus doesn't have permission to write to the file because sudo privileges have blocked it. Using tmp, a folder where all people write bypasses it – FredMan Dec 28 '17 at 03:28
  • the Wireless-radar repo hasn't been updated in over a year, and has had relatively little usage. `Failed to build pybluez` and `cc -fno-strict-aliasing -fno-common - ...... osx/_osxbt.c:676:5: error: unknown type name 'IOBluetoothDeviceInquiryRef'; did you mean 'IOBluetoothDeviceRef'? IOBluetoothDeviceInquiryRef inquiry;`. indicate the package might be broken or incompatible with your configuration. suggest you contact the author of the repo – ShpielMeister Dec 28 '17 at 03:51

2 Answers2

1

there are several previous q's on SO concerning the error you encountered

Failed to build pybluez and cc -fno-strict-aliasing -fno-common - ...... osx/_osxbt.c:676:5: error: unknown type name 'IOBluetoothDeviceInquiryRef'; did you mean 'IOBluetoothDeviceRef'? IOBluetoothDeviceInquiryRef

pybluez installation errors on Mac OS

see pybluez repo. in particular note

Mac OS X (Unstable - tested only on OS X 10.10/10.11):

pybluez installation errors on Mac OS

ShpielMeister
  • 1,417
  • 10
  • 23
  • Your stackoverflow link is linking to something other than stack overflow, did you mean to do that or was it an error when you set up the link to the pybluez repo? – FredMan Dec 28 '17 at 04:09
  • the text was correct. i've fixed the link. search SO for pybluez and you'll find others. good luck researching – ShpielMeister Dec 28 '17 at 05:29
0

Use sudo pip3 install wireless-radar instead of "pip" if you're using Mac OS X. This grants administrative privileges to install the module.

xv8
  • 183
  • 2
  • 11