pip install 中“Failed building wheel for X”是什么意思?

2025-03-18 08:54:00
admin
原创
82
摘要:问题描述:这是 SO 上一个非常受欢迎的问题,但是我看过的许多答案中,没有一个能清楚地解释这个错误的真正含义以及它发生的原因。造成混淆的一个原因是,当(例如)您执行 时pip install pycparser,首先会收到错误:Failed building wheel for pycparser接下来是包裹...

问题描述:

这是 SO 上一个非常受欢迎的问题,但是我看过的许多答案中,没有一个能清楚地解释这个错误的真正含义以及它发生的原因。

造成混淆的一个原因是,当(例如)您执行 时pip install pycparser,首先会收到错误:

Failed building wheel for pycparser

接下来是包裹的消息:

Successfully installed pycparser-2.19


# pip3 install pycparser

Collecting pycparser
  Using cached https://files.pythonhosted.org/packages/68/9e/49196946aee219aead1290e00d1e7fdeab8567783e83e1b9ab5585e6206a/pycparser-2.19.tar.gz
Building wheels for collected packages: pycparser
  Running setup.py bdist_wheel for pycparser ... error
  Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-g_v28hpp/pycparser/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('
', '
');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/pip-wheel-__w_f6p0 --python-tag cp36:
  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    ...
    File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2349, in resolve
      module = __import__(self.module_name, fromlist=['__name__'], level=0)
  ModuleNotFoundError: No module named 'wheel.bdist_wheel'

  ----------------------------------------
  Failed building wheel for pycparser
  Running setup.py clean for pycparser
Failed to build pycparser
Installing collected packages: pycparser
  Running setup.py install for pycparser ... done
Successfully installed pycparser-2.19

这里发生了什么事?

(我想了解为什么某些东西可能会失败但仍然可以安装,以及您是否可以相信这个包可以正确运行?)

到目前为止我发现的最佳部分解释是这样的。


解决方案 1:

(pip 维护者在这里!)

更新:从 Python 3.12 开始不再需要这样做,pip 将在新虚拟环境中自动使用隔离构建。

快速复制粘贴:

pip install wheel

在使用 创建的每个新虚拟环境中都执行此操作venv

请继续阅读以了解详细信息和解释。


如果软件包不是 wheel,pip 会尝试为其构建 wheel(通过setup.py bdist_wheel)。如果由于任何原因(例如缺少系统级库、与系统不兼容、构建的 wheel 中的版本字符串错误等)失败,您将收到“为 {...} 构建 wheel 失败”消息。

在某些情况下,目前,pip 会回退到通过 进行安装setup.py install,因此安装仍然有可能成功。也就是说,pip 总是尽可能多地尝试通过 wheel 安装软件包。这是因为使用 wheel 有各种优势(例如安装速度更快、可缓存、不重复执行代码等),而且它是一种标准化格式;与(已弃用的)setup.py install 接口不同。


此处的错误信息是由于wheel缺少包含构建轮子所需逻辑的包所致setup.py bdist_wheel。(pip install wheel可以修复该问题 - 但它无法修复由于系统配置导致的任何构建时间问题)


在未来的某个时候,我们将默认切换到更现代的构建系统(如果您是软件包作者,您可以通过添加来选择加入pyproject.toml),通过安装 wheel 的隔离构建环境来解决这个问题。:)

  • PEP 517:与构建系统无关的源树格式

  • 关于“用通俗易懂的英语解释 PEP 517 和 518 ”的博客文章

解决方案 2:

Failed building wheel for hddfancontrol昨天,我运行 时遇到了同样的错误: pip3 install hddfancontrol。结果是Failed to build hddfancontrol。原因是error: invalid command 'bdist_wheel'Running setup.py bdist_wheel for hddfancontrol ... error。通过运行以下命令修复了该错误:

 pip3 install wheel

(从这里开始。)

或者,也可以直接从这里下载“wheel” 。下载后,可以通过运行以下命令进行安装:

pip3 install "/the/file_path/to/wheel-0.32.3-py2.py3-none-any.whl"

解决方案 3:

因为,似乎没有人单独提到这一点。我自己对上述问题的解决方案通常是确保使用以下方法禁用缓存pip install <package> --no-cache-dir副本: 。

解决方案 4:

在我的例子中,创建 venv 后更新 pip 版本,将 pip 从 9.0.1 更新到 20.3.1

python3 -m venv env/python
source env/python/bin/activate
pip3 install pip --upgrade

但是,信息是...

Using legacy 'setup.py install' for django-avatar, since package 'wheel' is not installed.

然后,我在更新 pip 后安装 wheel 包

python3 -m venv env/python
source env/python/bin/activate
pip3 install --upgrade pip
pip3 install wheel

信息是...

Building wheel for django-avatar (setup.py): started
default:   Building wheel for django-avatar (setup.py): finished with status 'done'

解决方案 5:

从包部署的角度来解决这个问题可能会有所帮助。

有很多教程讲解了如何将包发布到 PyPi。下面是我使用过的几个;

中等

真实蟒蛇

我的经验是,这些教程中的大多数都只要求您使用源代码的 .tar,而不是 wheel。因此,在安装使用这些教程创建的软件包时,我收到了“无法构建 wheel”错误。

后来我在 PyPi 上找到了 Python 软件基金会的文档PSF Docs的链接。我发现他们的设置和构建过程略有不同,确实包括构建一个 wheel 文件。

使用官方记录的方法后,我安装软件包时不再收到错误。

因此,错误可能只是开发人员如何打包和部署项目的问题。我们中没有人天生就知道如何使用 PyPi,如果他们碰巧遇到了错误的教程——好吧,你可以填补空白。

我确信这不是导致错误的唯一原因,但我敢打赌这是导致错误的主要原因。

解决方案 6:

这个错误大多发生在你没有 wheel 所需的软件包时。如果你使用的是 python3,则安装 python3-dev;如果你使用的是 python 2,则安装 python2-dev。

sudo apt-get install python3-dev 

或者

sudo apt-get install python2-dev

解决方案 7:

错误 :

系统:aws ec2 实例(t2 small)

问题:通过以下方式安装 opencv python

pip3 install opencv-python

  Problem with the CMake installation, aborting build. CMake executable is cmake
  
  ----------------------------------------
  Failed building wheel for opencv-python
  Running setup.py clean for opencv-python

对我有用的

pip3 install --upgrade pip setuptools wheel

在此之后,您仍然可能会收到以下错误

    from .cv2 import *
ImportError: libGL.so.1: cannot open shared object file: No such file or directory

安装 libgl 为我解决了错误。

sudo apt update
sudo apt install libgl1-mesa-glx

希望这有帮助

解决方案 8:

在 Ubuntu 18.04 上,我遇到了这个问题,因为apt包中wheel不包含该wheel命令。我认为 pip 会尝试导入wheelpython 包,如果成功则假定该wheel命令也可用。Ubuntu 打破了这一假设。

apt python3 代码包名为。由于推荐,python3-wheel因此会自动安装。python3-pip

apt python3 wheel 命令包名为python-wheel-common。安装它也修复了我遇到的“构建 wheel 失败”错误。

解决方案 9:

就我而言,运行以下命令解决了该问题:

pip install "cython<3.0.0" wheel && pip install pyyaml==5.4.1 --no-build-isolation

解决方案 10:

尝试一下:

sudo apt-get install libpcap-dev libpq-dev

当我安装了这两个之后,它就对我起作用了。

请参阅此处的链接了解更多信息

解决方案 11:

我尝试安装时收到了同样的消息

pip install django-imagekit. 

所以我跑了

pip install wheel 

(我有 python 2.7)然后我重新运行pip install django-imagekit并且它成功了。

解决方案 12:

当我尝试安装需要“isal”的包时,我被这个问题困扰了几个小时,但isal安装失败了:

  ----------------------------------------
  ERROR: Failed building wheel for isal
Failed to build isal
ERROR: Could not build wheels for isal which use PEP 517 and cannot be installed directly

对我有用的解决方案是安装libtool

yum install libtool

解决方案 13:

在 VS Code 中安装使用 pandas 的 datacompy 时,我遇到了 wheel 错误。这帮我解决了这个问题:

pip install datacompy --no-deps --ignore-installed

解决方案 14:

我在安装 Brotli 时遇到了同样的问题

错误

Failed building wheel for Brotli

我通过从这里.whl下载文件
并使用以下命令安装它来解决这个问题

C:Users{user_name}Downloads>pip install Brotli-1.0.9-cp39-cp39-win_amd64.whl

解决方案 15:

在 Linux 上,这很可能是由于未安装 build/dev 工具造成的。这也可能影响 psycopg2 或 pycrypto 等软件包... 安装这些依赖项应该可以解决问题。

sudo apt 安装 build-essential libpq-dev python3-dev

解决方案 16:

我在安装“pyblake2”包时也遇到了问题。在MacOS M2上运行!错误文本(近似文本):“无法为 pyblake2 构建 wheel...”但是“wheel”模块已成功安装!

解决方案:

  1. 从官方来源下载包:https://pypi.org/project/pyblake2/#modal-close

  2. 通过运行以下命令运行“setup.py”:~python3 setup.py

  3. 如果抛出错误:

  • a) pyblake2module.c:699:27: 错误:表达式不可分配 Py_TYPE(&blake2bType) = &PyType_Type;

  • b) pyblake2module.c:703:27: 错误:表达式不可分配 Py_TYPE(&blake2sType) = &PyType_Type;

替换以下行:

  • a) Py_TYPE(&blake2bType) = &PyType_Type; -> blake2bType.tp_base = &PyType_Type;

  • b) Py_TYPE(&blake2sType) = &PyType_Type; -> blake2sType.tp_base = &PyType_Type;

  1. 再次重复步骤#2。

不客气!

解决方案 17:

简单来说,就是说中的包requirements.txt被设置为相对“弃用”的版本,而你当前的Python环境的底层实现无法解释wheel源码,或者故意产生错误。

处理此问题的一种方法是将“==”替换为requirements.txt“>=”。这样,您可以迭代地仅更新需要“wheel”构建的软件包的版本。

解决方案 18:

我想补充一点,如果您的系统上只有 Python3,那么您需要开始使用 pip3 而不是 pip。

您可以使用以下命令安装 pip3;

sudo apt install python3-pip -y

此后,您可以尝试安装所需的包;

sudo pip3 install <package>

解决方案 19:

我尝试安装python-nmap工具,但出现此错误。

如果您使用的是Linux平台,请确保nmap已安装该工具,否则该库python-nmap将无法工作。

在基于 Red Hat 的发行版上,请nmap按如下方式安装 CLI:

sudo yum install namp

解决方案 20:

对于 mac-os,在终端中运行以下命令

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

解决方案 21:

这可能会对你有帮助!....

卸载 pycparser:

pip uninstall pycparser

重新安装 pycparser:

pip install pycparser

安装 termcolor 时我遇到了同样的错误,我通过重新安装修复了该错误。

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   2482  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1533  
  PLM(产品生命周期管理)项目对于企业优化产品研发流程、提升产品质量以及增强市场竞争力具有至关重要的意义。然而,在项目推进过程中,范围蔓延是一个常见且棘手的问题,它可能导致项目进度延迟、成本超支以及质量下降等一系列不良后果。因此,有效避免PLM项目范围蔓延成为项目成功的关键因素之一。以下将详细阐述三大管控策略,助力企业...
plm系统   0  
  PLM(产品生命周期管理)项目管理在企业产品研发与管理过程中扮演着至关重要的角色。随着市场竞争的加剧和产品复杂度的提升,PLM项目面临着诸多风险。准确量化风险优先级并采取有效措施应对,是确保项目成功的关键。五维评估矩阵作为一种有效的风险评估工具,能帮助项目管理者全面、系统地评估风险,为决策提供有力支持。五维评估矩阵概述...
免费plm软件   0  
  引言PLM(产品生命周期管理)开发流程对于企业产品的全生命周期管控至关重要。它涵盖了从产品概念设计到退役的各个阶段,直接影响着产品质量、开发周期以及企业的市场竞争力。在当今快速发展的科技环境下,客户对产品质量的要求日益提高,市场竞争也愈发激烈,这就使得优化PLM开发流程成为企业的必然选择。缺陷管理工具和六西格玛方法作为...
plm产品全生命周期管理   0  
热门文章
项目管理软件有哪些?
曾咪二维码

扫码咨询,免费领取项目管理大礼包!

云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用