Unable to install PyBluez in windows 10 on python 3.8

11.8k views Asked by At

When I try to install PyBluez on my PC, it displays to an error as shown below. I have installed a C++ compiler. I don't know what the problem is and how to fix it. I even tried to download a zip from their Github and then tried to install I used pip setup.py install it installed, but I wasn't able to import the bluetooth library. Can anyone help?

  Using cached PyBluez-0.23.tar.gz (97 kB)
Using legacy 'setup.py install' for pybluez, since package 'wheel' is not installed.
Installing collected packages: pybluez
    Running setup.py install for pybluez ... error
    ERROR: Command errored out with exit status 1:
     command: 'e:\python\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\itsgu\\AppData\\Local\\Temp\\pip-install-te3cdwvh\\pybluez\\setup.py'"'"'; __file__='"'"'C:\\Users\\itsgu\\AppData\\Local\\Temp\\pip-install-te3cdwvh\\pybluez\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\itsgu\AppData\Local\Temp\pip-record-gfwpefis\install-record.txt' --single-version-externally-managed --compile --install-headers 'e:\python\Include\pybluez'
         cwd: C:\Users\itsgu\AppData\Local\Temp\pip-install-te3cdwvh\pybluez\
    Complete output (41 lines):
    running install
    running build
    running build_py
    creating build
    creating build\lib.win-amd64-3.8
    creating build\lib.win-amd64-3.8\bluetooth
    copying bluetooth\ble.py -> build\lib.win-amd64-3.8\bluetooth
    copying bluetooth\bluez.py -> build\lib.win-amd64-3.8\bluetooth
    copying bluetooth\btcommon.py -> build\lib.win-amd64-3.8\bluetooth
    copying bluetooth\macos.py -> build\lib.win-amd64-3.8\bluetooth
    copying bluetooth\msbt.py -> build\lib.win-amd64-3.8\bluetooth
    copying bluetooth\widcomm.py -> build\lib.win-amd64-3.8\bluetooth
    copying bluetooth\__init__.py -> build\lib.win-amd64-3.8\bluetooth
    e:\python\lib\site-packages\setuptools\lib2to3_ex.py:36: SetuptoolsDeprecationWarning: 2to3 support is deprecated. If the project still requires Python 2 support, please migrate to a single-codebase solution or employ an independent conversion process.
      warnings.warn(
    Fixing build\lib.win-amd64-3.8\bluetooth\ble.py build\lib.win-amd64-3.8\bluetooth\bluez.py build\lib.win-amd64-3.8\bluetooth\btcommon.py build\lib.win-amd64-3.8\bluetooth\macos.py build\lib.win-amd64-3.8\bluetooth\msbt.py build\lib.win-amd64-3.8\bluetooth\widcomm.py build\lib.win-amd64-3.8\bluetooth\__init__.py
    Skipping optional fixer: buffer
    Skipping optional fixer: idioms
    Skipping optional fixer: set_literal
    Skipping optional fixer: ws_comma
    Fixing build\lib.win-amd64-3.8\bluetooth\ble.py build\lib.win-amd64-3.8\bluetooth\bluez.py build\lib.win-amd64-3.8\bluetooth\btcommon.py build\lib.win-amd64-3.8\bluetooth\macos.py build\lib.win-amd64-3.8\bluetooth\msbt.py build\lib.win-amd64-3.8\bluetooth\widcomm.py build\lib.win-amd64-3.8\bluetooth\__init__.py
    Skipping optional fixer: buffer
    Skipping optional fixer: idioms
    Skipping optional fixer: set_literal
    Skipping optional fixer: ws_comma
    running build_ext
    building 'bluetooth._msbt' extension
    creating build\temp.win-amd64-3.8
    creating build\temp.win-amd64-3.8\Release
    creating build\temp.win-amd64-3.8\Release\msbt
    C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.27.29110\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -I.\port3 -Ie:\python\include -Ie:\python\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.27.29110\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\cppwinrt" /Tcmsbt\_msbt.c /Fobuild\temp.win-amd64-3.8\Release\msbt\_msbt.obj
    _msbt.c
    msbt\_msbt.c(145): warning C4244: '=': conversion from 'SOCKET' to 'int', possible loss of data
    msbt\_msbt.c(222): warning C4244: '=': conversion from 'SOCKET' to 'int', possible loss of data
    msbt\_msbt.c(402): warning C4244: '=': conversion from 'SOCKET' to 'int', possible loss of data
    msbt\_msbt.c(415): warning C4244: 'initializing': conversion from 'SOCKET' to 'int', possible loss of data
    msbt\_msbt.c(635): warning C4244: 'initializing': conversion from 'SOCKET' to 'int', possible loss of data
    msbt\_msbt.c(807): warning C4311: 'type cast': pointer truncation from 'HANDLE' to 'unsigned long'
    C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.27.29110\bin\HostX86\x64\link.exe /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO /LIBPATH:e:\python\libs /LIBPATH:e:\python\PCbuild\amd64 "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.27.29110\lib\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\lib\um\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\ucrt\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64" WS2_32.lib Irprops.lib /EXPORT:PyInit__msbt build\temp.win-amd64-3.8\Release\msbt\_msbt.obj /OUT:build\lib.win-amd64-3.8\bluetooth\_msbt.cp38-win_amd64.pyd /IMPLIB:build\temp.win-amd64-3.8\Release\msbt\_msbt.cp38-win_amd64.lib
    LINK : fatal error LNK1181: cannot open input file 'Irprops.lib'
    error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Tools\\MSVC\\14.27.29110\\bin\\HostX86\\x64\\link.exe' failed with exit status 1181
    ----------------------------------------
ERROR: Command errored out with exit status 1: 'e:\python\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\itsgu\\AppData\\Local\\Temp\\pip-install-te3cdwvh\\pybluez\\setup.py'"'"'; __file__='"'"'C:\\Users\\itsgu\\AppData\\Local\\Temp\\pip-install-te3cdwvh\\pybluez\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\itsgu\AppData\Local\Temp\pip-record-gfwpefis\install-record.txt' --single-version-externally-managed --compile --install-headers 'e:\python\Include\pybluez' Check the logs for full command output.```
3

There are 3 answers

1
Aly Abdelaal On

just install the right versio pip install pybluez2

0
h4bit On

This may be too late, but I faced the same issue. I will provide below two directions for you to take to make PyBluez work. This is more of a workaround, since I was not able to resolve all PyBluez issues on my own system using Python 3.9.x. In both cases you are required to change python version. You can pick what works for you and your needs.

ALTERNATIVE 1: Using Python 3.9.x Sockets

Out of the box, Python 3.9.x can connect to Bluetooth using sockets.

import socket
sock = socket.socket(socket.AF_BLUETOOTH, socket.SOCK_STREAM, socket.BTPROTO_RFCOMM)
sock.connect((host, port))

ALTERNATIVE 2: Use Python 3.7.x with pyenv and pipenv

1. Dependencies (also ensure your paths are set properly)

  • pipenv
  • pyenv-win

2. Check the latest version of Python 3.7 available. Most likely will be 3.7.7.

pyenv install --list

3. Install python using pyenv

pyenv install 3.7.7

4. Go to your project's folder and create a virtual environment using the python version installed

pipenv --python 3.7.7

5. Clone and Build Pybluez from source

git clone https://github.com/pybluez/pybluez.git 
cd pybluez/
python setup.py build

6. Install PyBluez within your virtual environment

pipenv shell
python setup.py install

From there, you should be able run any projects within this virtual environment using python 3.7.7, which is able to properly build and install PyBluez. I have not found any other methods of making PyBluez install as of now.

2
Cristian P On

or just try

python -m pip install -e git+https://github.com/pybluez/pybluez.git#egg=pybluez