簡體   English   中英

通過 pip 安裝 PyBluez 並遇到導入問題

[英]Installing PyBluez via pip and troubles with import

我必須使用 Pybluez 做一些事情,我的代碼有錯誤,所以我告訴自己從 Pybluez 中的“代碼示例”開始,但我在示例中也有錯誤。

這是例子:

#!/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

我也有錯誤...

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 庫的問題,當我將每個“藍牙”更改為“套接字”時,它可以正常工作。

你為什么不安裝輪子 package? 在我的 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\bc\7c\2f\4e387b5bfa0f5919fe04e222edc4d6c0e79e5f020ffbfeef98
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.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM