通过 pip 安装 PyBluez 并遇到导入问题
Installing PyBluez via pip and troubles with import
我必须使用 Pybluez 做一些事情,我的代码有错误,所以我告诉自己从 Pybluez 中的“代码示例”开始,但我在示例中也有错误。
This is the example:
#!/usr/bin/env python3
import bluetooth
server_sock = bluetooth.BluetoothSocket(bluetooth.RFCOMM)
server_sock.bind(("", bluetooth.PORT_ANY))
server_sock.listen(1)
port = server_sock.getsockname()[1]
uuid = "94f39d29-7d6d-437d-973b-fba39e49d4ee"
bluetooth.advertise_service(server_sock, "SampleServer", service_id=uuid,
service_classes=[uuid, bluetooth.SERIAL_PORT_CLASS],
profiles=[bluetooth.SERIAL_PORT_PROFILE],
# protocols=[bluetooth.OBEX_UUID]
)
print("Waiting for connection on RFCOMM channel", port)
client_sock, client_info = server_sock.accept()
print("Accepted connection from", client_info)
try:
while True:
data = client_sock.recv(1024)
if not data:
break
print("Received", data)
except OSError:
pass
print("Disconnected.")
client_sock.close()
server_sock.close()
print("All done.")
所以我尝试通过 pip 重新安装 Pybluez,我卸载了它并运行了命令
pip install git+https://github.com/pybluez/pybluez#egg=Pybluez
I've got error too...
PS C:\Users\AWWP2UY> pip install git+https://github.com/pybluez/pybluez#egg=Pybluez
Collecting Pybluez
Cloning https://github.com/pybluez/pybluez to c:\users\awwp2uy\appdata\local\temp\pip-install-vnq86zsj\pybluez_60d3f467b9d64a8692e045a4ad16478a
Running command git clone --filter=blob:none --quiet https://github.com/pybluez/pybluez 'C:\Users\AWWP2UY\AppData\Local\Temp\pip-install-vnq86zsj\pybluez_60d3f467b9d64a8692e045a4ad16478a'
Resolved https://github.com/pybluez/pybluez to commit 07ebef044195331a48bbb90a3acb911922048ba0
Preparing metadata (setup.py) ... done
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: subprocess-exited-with-error
× Running setup.py install for Pybluez did not run successfully.
│ exit code: 1
╰─> [16 lines of output]
running install
running build
running build_py
creating build
creating build\lib.win-amd64-3.9
creating build\lib.win-amd64-3.9\bluetooth
copying bluetooth\ble.py -> build\lib.win-amd64-3.9\bluetooth
copying bluetooth\bluez.py -> build\lib.win-amd64-3.9\bluetooth
copying bluetooth\btcommon.py -> build\lib.win-amd64-3.9\bluetooth
copying bluetooth\macos.py -> build\lib.win-amd64-3.9\bluetooth
copying bluetooth\msbt.py -> build\lib.win-amd64-3.9\bluetooth
copying bluetooth\widcomm.py -> build\lib.win-amd64-3.9\bluetooth
copying bluetooth\__init__.py -> build\lib.win-amd64-3.9\bluetooth
running build_ext
building 'bluetooth._msbt' extension
error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure
× Encountered error while trying to install package.
╰─> Pybluez
note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the fail
我很困惑,因为它是导入错误,在大多数情况下你必须重新安装模块...
这是 Pybluez 库的问题,当我将每个“蓝牙”更改为“套接字”时,它可以正常工作。
为什么不安装wheel包?
在我的 windows 10 cmd 中,它起作用了。
D:\Users\aaa\Documents\temp>pip3 install wheel
Defaulting to user installation because normal site-packages is not writeable
Collecting wheel
Using cached wheel-0.37.1-py2.py3-none-any.whl (35 kB)
Installing collected packages: wheel
Successfully installed wheel-0.37.1
WARNING: You are using pip version 21.3.1; however, version 22.0.4 is available.
You should consider upgrading via the 'c:\program files\python39\python.exe -m pip install --upgrade pip' command.
D:\Users\aaa\Documents\temp>pip install git+https://github.com/pybluez/pybluez#egg=Pybluez
Defaulting to user installation because normal site-packages is not writeable
Collecting Pybluez
Cloning https://github.com/pybluez/pybluez to c:\users\aaa\appdata\local\temp\pip-install-0c991ofp\pybluez_521edbc9ad5c4270a89d76fba6a624ca
Running command git clone --filter=blob:none -q https://github.com/pybluez/pybluez 'C:\Users\aaa\AppData\Local\Temp\pip-install-0c991ofp\pybluez_521edbc9ad5c4270a89d76fba6a624ca'
Resolved https://github.com/pybluez/pybluez to commit 07ebef044195331a48bbb90a3acb911922048ba0
Preparing metadata (setup.py) ... done
Building wheels for collected packages: Pybluez
Building wheel for Pybluez (setup.py) ... done
Created wheel for Pybluez: filename=PyBluez-0.30-cp39-cp39-win_amd64.whl size=44980 sha256=9573d52c0f700da50c44ec5e9e26f10179ff78ff4b2b39e6788eac7793d4f7c9
Stored in directory: C:\Users\aaa\AppData\Local\Temp\pip-ephem-wheel-cache-093g80tx\wheels\bccfe387b5bfa0f5919fe04e222edc4d6c0e79e5f020ffbfeef98
Successfully built Pybluez
Installing collected packages: Pybluez
Successfully installed Pybluez-0.30
WARNING: You are using pip version 21.3.1; however, version 22.0.4 is available.
You should consider upgrading via the 'c:\program files\python39\python.exe -m pip install --upgrade pip' command.
我必须使用 Pybluez 做一些事情,我的代码有错误,所以我告诉自己从 Pybluez 中的“代码示例”开始,但我在示例中也有错误。
This is the example:
#!/usr/bin/env python3
import bluetooth
server_sock = bluetooth.BluetoothSocket(bluetooth.RFCOMM)
server_sock.bind(("", bluetooth.PORT_ANY))
server_sock.listen(1)
port = server_sock.getsockname()[1]
uuid = "94f39d29-7d6d-437d-973b-fba39e49d4ee"
bluetooth.advertise_service(server_sock, "SampleServer", service_id=uuid,
service_classes=[uuid, bluetooth.SERIAL_PORT_CLASS],
profiles=[bluetooth.SERIAL_PORT_PROFILE],
# protocols=[bluetooth.OBEX_UUID]
)
print("Waiting for connection on RFCOMM channel", port)
client_sock, client_info = server_sock.accept()
print("Accepted connection from", client_info)
try:
while True:
data = client_sock.recv(1024)
if not data:
break
print("Received", data)
except OSError:
pass
print("Disconnected.")
client_sock.close()
server_sock.close()
print("All done.")
所以我尝试通过 pip 重新安装 Pybluez,我卸载了它并运行了命令
pip install git+https://github.com/pybluez/pybluez#egg=Pybluez
I've got error too...
PS C:\Users\AWWP2UY> pip install git+https://github.com/pybluez/pybluez#egg=Pybluez
Collecting Pybluez
Cloning https://github.com/pybluez/pybluez to c:\users\awwp2uy\appdata\local\temp\pip-install-vnq86zsj\pybluez_60d3f467b9d64a8692e045a4ad16478a
Running command git clone --filter=blob:none --quiet https://github.com/pybluez/pybluez 'C:\Users\AWWP2UY\AppData\Local\Temp\pip-install-vnq86zsj\pybluez_60d3f467b9d64a8692e045a4ad16478a'
Resolved https://github.com/pybluez/pybluez to commit 07ebef044195331a48bbb90a3acb911922048ba0
Preparing metadata (setup.py) ... done
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: subprocess-exited-with-error
× Running setup.py install for Pybluez did not run successfully.
│ exit code: 1
╰─> [16 lines of output]
running install
running build
running build_py
creating build
creating build\lib.win-amd64-3.9
creating build\lib.win-amd64-3.9\bluetooth
copying bluetooth\ble.py -> build\lib.win-amd64-3.9\bluetooth
copying bluetooth\bluez.py -> build\lib.win-amd64-3.9\bluetooth
copying bluetooth\btcommon.py -> build\lib.win-amd64-3.9\bluetooth
copying bluetooth\macos.py -> build\lib.win-amd64-3.9\bluetooth
copying bluetooth\msbt.py -> build\lib.win-amd64-3.9\bluetooth
copying bluetooth\widcomm.py -> build\lib.win-amd64-3.9\bluetooth
copying bluetooth\__init__.py -> build\lib.win-amd64-3.9\bluetooth
running build_ext
building 'bluetooth._msbt' extension
error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure
× Encountered error while trying to install package.
╰─> Pybluez
note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the fail
我很困惑,因为它是导入错误,在大多数情况下你必须重新安装模块...
这是 Pybluez 库的问题,当我将每个“蓝牙”更改为“套接字”时,它可以正常工作。
为什么不安装wheel包? 在我的 windows 10 cmd 中,它起作用了。
D:\Users\aaa\Documents\temp>pip3 install wheel
Defaulting to user installation because normal site-packages is not writeable
Collecting wheel
Using cached wheel-0.37.1-py2.py3-none-any.whl (35 kB)
Installing collected packages: wheel
Successfully installed wheel-0.37.1
WARNING: You are using pip version 21.3.1; however, version 22.0.4 is available.
You should consider upgrading via the 'c:\program files\python39\python.exe -m pip install --upgrade pip' command.
D:\Users\aaa\Documents\temp>pip install git+https://github.com/pybluez/pybluez#egg=Pybluez
Defaulting to user installation because normal site-packages is not writeable
Collecting Pybluez
Cloning https://github.com/pybluez/pybluez to c:\users\aaa\appdata\local\temp\pip-install-0c991ofp\pybluez_521edbc9ad5c4270a89d76fba6a624ca
Running command git clone --filter=blob:none -q https://github.com/pybluez/pybluez 'C:\Users\aaa\AppData\Local\Temp\pip-install-0c991ofp\pybluez_521edbc9ad5c4270a89d76fba6a624ca'
Resolved https://github.com/pybluez/pybluez to commit 07ebef044195331a48bbb90a3acb911922048ba0
Preparing metadata (setup.py) ... done
Building wheels for collected packages: Pybluez
Building wheel for Pybluez (setup.py) ... done
Created wheel for Pybluez: filename=PyBluez-0.30-cp39-cp39-win_amd64.whl size=44980 sha256=9573d52c0f700da50c44ec5e9e26f10179ff78ff4b2b39e6788eac7793d4f7c9
Stored in directory: C:\Users\aaa\AppData\Local\Temp\pip-ephem-wheel-cache-093g80tx\wheels\bccfe387b5bfa0f5919fe04e222edc4d6c0e79e5f020ffbfeef98
Successfully built Pybluez
Installing collected packages: Pybluez
Successfully installed Pybluez-0.30
WARNING: You are using pip version 21.3.1; however, version 22.0.4 is available.
You should consider upgrading via the 'c:\program files\python39\python.exe -m pip install --upgrade pip' command.