开发者问题收集

如何解决无法为 hidapi 构建轮子的错误,这是安装基于 pyproject.toml 的项目所必需的

2023-09-25
1227

`coralmicro % bash setup.sh ==> 正在下载 https://formulae.brew.sh/api/cask.jws.json ########################################################################### 100.0% 警告:将 cmake 视为公式。对于 cask,请使用 homebrew/cask/cmake 警告:cmake 3.27.6 已安装且为最新版本。 要重新安装 3.27.6,请运行: brew reinstall cmake 警告:libusb 1.0.26 已安装且为最新版本。 要重新安装 1.0.26,请运行: brew reinstall libusb 警告:lsusb 1.0 已安装且为最新版本。 要重新安装 1.0,请运行: brew reinstall lsusb 要求已满足:pip in /opt/homebrew/lib/python3.11/site-packages (23.2.1) 正在收集 hexformat==0.2(来自 -r /Users/danielcagney/documents/coralmicro/scripts/requirements.txt(第 1 行)) 使用缓存的 hexformat-0.2-py3-none-any.whl 正在收集 hidapi==0.10.1(来自 -r /Users/danielcagney/documents/coralmicro/scripts/requirements.txt(第 2 行)) 使用缓存的 hidapi-0.10.1.tar.gz (60 kB) 正在准备元数据 (setup.py) ... 完成 正在收集进度==1.5(来自 -r /Users/danielcagney/documents/coralmicro/scripts/requirements.txt (第 3 行)) 使用缓存的 progress-1.5-py3-none-any.whl 收集 pyserial==3.5 (来自 -r /Users/danielcagney/documents/coralmicro/scripts/requirements.txt (第 4 行)) 使用缓存的 pyserial-3.5-py2.py3-none-any.whl (90 kB) 收集 pyusb==1.2.0 (来自 -r /Users/danielcagney/documents/coralmicro/scripts/requirements.txt (第 5 行)) 使用缓存的 pyusb-1.2.0-py3-none-any.whl (58 kB) 已满足要求:setuptools>=19.0 /opt/homebrew/lib/python3.11/site-packages(来自 hidapi==0.10.1->-r /Users/danielcagney/documents/coralmicro/scripts/requirements.txt(第 2 行))(68.1.2) 为收集的软件包构建 wheel:hidapi 为 hidapi (setup.py) 构建 wheel ... 错误 错误:subprocess-exited-with-error

× python setup.py bdist_wheel 未成功运行。 │ 退出代码:1 ╰─> [19 行输出] /opt/homebrew/lib/python3.11/site-packages/setuptools/ init .py:84:_DeprecatedInstaller:setuptools.installer 和 fetch_build_eggs 已弃用。 !! !! dist.fetch_build_eggs(dist.setup_requires) 正在运行 bdist_wheel 正在运行 build 正在运行 build_ext 正在编译 hid.pyx,因为它已发生更改。 [1/1] Cythonizing hid.pyx /private/var/folders/th/c5bb5d0d4nvfytxblkshzdhw0000gn/T/pip-install-__i68mir/hidapi_95004ab0156645e5beeeaca9bdeb6eed/.eggs/Cython-3.0.2-py3.11.egg/Cython/Compiler/Main.py:384:FutureWarning:Cython 指令“language_level”未设置,目前使用“3str”(Py3)。这与早期版本不同!文件:/private/var/folders/th/c5bb5d0d4nvfytxblkshzdhw0000gn/T/pip-install-__i68mir/hidapi_95004ab0156645e5beeeaca9bdeb6eed/hid.pyx tree = Parsing.p_module(s, pxd, full_module_name) 构建“hid”扩展 错误:未知文件类型“.pxd”(来自“chid.pxd”) [输出结束]

注意:此错误源自子进程,可能不是 pip 的问题。 错误:无法为 hidapi 构建 wheel 运行 setup.py clean 以清理 hidapi 无法构建 hidapi 错误:无法为 hidapi 构建 wheel,而安装基于 pyproject.toml 的项目需要此 wheel

我尝试运行 bash setup.sh,然后出现此错误。`

2个回答

我遇到了同样的问题,但 build.sh(coral micro 入门指南的下一部分)可以工作(卸载 hidapi 并按照 Dockerfile 重新安装后)。并且还在板上刷新了脚本。所以我认为这是这个特定脚本的问题,没有进一步的影响。但我会保持警惕。

Mister_MB
2023-10-19

出现此错误的原因是 pip 无法安装 hidapi 0.10.1 版本。如果您检查该文件:

coralmicro/scripts/requirements.txt

您会看到,正确的 hidapi 版本应指定​​为:

hidapi==0.10.1

即使您尝试该命令:

pip install hidapi==0.10.1

您也会得到完全相同的错误。

但是,您可以尝试以下两种解决方案,这两种解决方案我都已在不同的机器上成功应用:

解决方案 1:

sudo apt-get update
sudo apt-get install cython3
sudo apt-get install libhidapi-dev

如果版本不是 0.10.1,请不要担心。执行以下步骤:

解决方案 2:

如果已安装 hidapi 版本,则可以使用:

pip show hidapi

检查版本并确定是否已安装,然后:

pip uninstall hidapi

卸载它。

之后,转到网站:/home/augusto/Downloads/hidapi-0.10.1.tar.gz。不要下载第一个版本。查找操作系统支持的版本。在我的情况下,它是版本:hidapi-0.10.1-cp38-cp38-manylinux2014_x86_64.whl (860.7 kB 查看哈希值)。

解压压缩文件后,将其移动到 lib 目录。如果您使用的是 venv 之类的虚拟环境,它可能位于:

lib/python3.x/site-packages/

否则,它可能位于:

/username/.local/lib/python3.x/site-packages/

如果您不清楚它是哪个目录,它与 hexformat、pyserial 和其他依赖项所在的目录相同。

完成此操作后,返回 /coralmicro 并执行:

bash setup.sh

错误可能会消失。

Augusto Guerra de Lima
2024-05-07