安装PyBluez0.22出现问题AssertionError: C:\Python\Python39\lib\distutils\core.py如何解决

环境:win11,python3.9
下载了Albert Huang修改过的PyBluez0.22(https://github.com/karulis/pybluez%EF%BC%89%EF%BC%8C%E4%BD%BF%E7%94%A8%E5%91%BD%E4%BB%A4%E8%A1%8C%EF%BC%8C%E4%BD%BF%E7%94%A8python setup.py install手动安装包PyBluez0.22,命令行界面出现下面的问题:

C:\Users\Desktop\Experiment\pybluez-master>C:\Python\Python39\python setup.py install
Traceback (most recent call last):
  File "C:\Users\Desktop\Experiment\pybluez-master\setup.py", line 3, in 
    from setuptools import setup, Extension
  File "C:\Users\AppData\Local\Programs\Python\lib\site-packages\setuptools\__init__.py", line 8, in 
    import _distutils_hack.override  # noqa: F401
  File "C:\Users\AppData\Local\Programs\Python\lib\site-packages\_distutils_hack\override.py", line 1, in 
    __import__('_distutils_hack').do_override()
  File "C:\Users\AppData\Local\Programs\Python\lib\site-packages\_distutils_hack\__init__.py", line 77, in do_override
    ensure_local_distutils()
  File "C:\Users\AppData\Local\Programs\Python\lib\site-packages\_distutils_hack\__init__.py", line 64, in ensure_local_distutils
    assert '_distutils' in core.__file__, core.__file__
AssertionError: C:\Python\Python39\lib\distutils\core.py

请问如何解决?

参考GPT和自己的思路:

首先,这个问题是由于 import setuptools 模块时出现了错误导致的。错误信息中提到了“_distutils_hack ”这个模块,它是 setuptools 模块中使用的一个临时模块。

为解决这个问题,你可以尝试以下步骤:

  1. 确保你已经安装了最新版本的 setuptools 模块,如果没有,请先安装最新版本的 setuptools 模块。

  2. 进入你的 Python 安装目录下的 Lib/site-packages/ 目录,找到 setuptools 相关的文件和目录,如 _distutils_hack 目录和 setuptools 相关的 *.py 文件等。

  3. 删除这些文件和目录,然后重新安装 PyBluez0.22。你可以通过下载源码包,然后使用命令行安装方式进行安装。

如果你仍然无法解决问题,或者删除 setuptools 相关的文件和目录后产生了新的问题,请到 Python 官方社区或者 PyBluez 官方社区寻求帮助。

参考GPT和自己的思路:

这个错误是因为setuptools安装了_distutils的覆盖版本,并且覆盖的版本不支持PyBluez0.22。您可以尝试以下两种解决方案:

  1. 升级setuptools到最新版本(21.0或更高版本),可以通过以下命令升级:
pip install --upgrade setuptools

然后尝试重新安装PyBluez0.22。

  1. 如果第一种方法没有起作用,请使用pip安装PyBluez0.22,而不是手动安装。可以通过以下命令安装:
pip install pybluez==0.22

这应该会解决您的问题。

解决方案

此问题是由于Python环境中的distutils库被其他库修改或覆盖所致。解决方案如下:

  • 方法一:卸载其他库并重新安装PyBluez0.22
  • 方法二:手动删除被其他库覆盖的distutils库,将Python环境中的distutils库还原为原始版本,然后重新安装PyBluez0.22

建议使用方法一,如果方法一无法解决问题,可以尝试方法二。

setup脚本出错,应该是版本不兼容,是pip安装的么?重新安装一下。