当我尝试在PC上安装PyBluez时,它显示如下错误。我已经安装了C ++编译器。我不知道问题是什么以及如何解决。我什至尝试从他们的Github下载一个zip文件,然后尝试使用pip setup.py install
安装它,但是我无法导入蓝牙库。有人可以帮忙吗?
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.```
答案 0 :(得分:1)
这可能为时已晚,但我遇到了同样的问题。我将提供以下两个方向供您使用,以使 PyBluez 工作。这更像是一种解决方法,因为我无法使用 Python 3.9.x 在自己的系统上解决所有 PyBluez 问题。在这两种情况下,您都需要更改 python 版本。您可以选择适合您和您的需求的方法。
开箱即用,Python 3.9.x 可以使用套接字连接到蓝牙。
import socket
sock = socket.socket(socket.AF_BLUETOOTH, socket.SOCK_STREAM, socket.BTPROTO_RFCOMM)
sock.connect((host, port))
1.依赖项(还要确保您的路径设置正确)
2.检查可用的 Python 3.7 的最新版本。最有可能是 3.7.7。
pyenv install --list
3.使用pyenv安装python
pyenv install 3.7.7
4.转到您项目的文件夹并使用安装的 python 版本创建一个虚拟环境
pipenv --python 3.7.7
5.从源代码克隆和构建 Pybluez
git clone https://github.com/pybluez/pybluez.git
cd pybluez/
python setup.py build
6.在您的虚拟环境中安装 PyBluez
pipenv shell
python setup.py install
从那里,您应该能够使用 python 3.7.7 在这个虚拟环境中运行任何项目,它能够正确构建和安装 PyBluez。到目前为止,我还没有找到任何其他安装 PyBluez 的方法。
答案 1 :(得分:0)
只需安装正确的版本 pip 安装 pybluez2