繁体   English   中英

无法在 python 3.8 上的 Windows 10 中安装 PyBluez

[英]Unable to install PyBluez in windows 10 on python 3.8

当我尝试在我的 PC 上安装 PyBluez 时,它显示如下所示的错误。 我已经安装了 C++ 编译器。 我不知道问题是什么以及如何解决它。 我什至尝试从他们的 Github 下载一个 zip,然后尝试安装我使用pip setup.py install it installed,但我无法导入蓝牙库。 任何人都可以帮忙吗?

  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.```

这可能为时已晚,但我遇到了同样的问题。 我将提供以下两个方向供您使用,以使 PyBluez 工作。 这更像是一种解决方法,因为我无法使用 Python 3.9.x 在自己的系统上解决所有 PyBluez 问题。 在这两种情况下,您都需要更改 python 版本。 您可以选择适合您和您的需求的方法。

备选方案 1:使用 Python 3.9.x 套接字

开箱即用,Python 3.9.x 可以使用套接字连接到蓝牙。

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

备选方案 2:将 Python 3.7.x 与 pyenv 和 pipenv 一起使用

1. 依赖关系(还要确保你的路径设置正确)

  • 管道
  • pyenv-win

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 的方法。

只需安装正确的版本 pip install pybluez2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM