这是一个非常受欢迎的问题,但我所看到的许多答案中,没有一个能清楚地解释这个错误的真正含义,以及它为什么会发生。

混淆的一个来源是,当(例如)你执行pip install pycparser时,你首先得到错误:

pycparser构建转轮失败

后面跟着一个消息,这个包是:

成功安装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('\r\n', '\n');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

这是怎么回事?

(我想了解一些东西是如何失败的,但仍然可以安装,以及您是否可以相信这个包正常运行?)

到目前为止,我找到的最好的部分解释是这样的。


当前回答

错误:

系统:aws ec2实例(t2小)

问题:在安装opencv python via

Pip3安装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安装——升级PIP setuptools轮

在此之后,您仍然可能收到休闲错误错误

    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

希望这能有所帮助

其他回答

从那以后,除了我自己,似乎没有人提起这件事。对于上述问题,我自己的解决方案通常是通过使用pip install <package>——no-cache-dir来确保禁用缓存副本。

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

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

媒介 真正的python

我的经验是,大多数这些教程只让你使用源代码的.tar,而不是轮子。因此,在安装使用这些教程创建的包时,我收到了“构建轮子失败”错误。

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

在使用官方文档的方法后,我在安装包时不再收到错误。

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

我敢肯定这不是造成错误的唯一原因,但我敢打赌这是一个主要原因。

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

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

sudo apt install python3-pip -y

在此之后,您可以尝试安装所需的软件包;

sudo pip3 install <package>

错误:

系统:aws ec2实例(t2小)

问题:在安装opencv python via

Pip3安装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安装——升级PIP setuptools轮

在此之后,您仍然可能收到休闲错误错误

    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

希望这能有所帮助

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

apt的python3代码包被命名为python3-wheel。这是自动安装的,因为python3-pip推荐它。

apt的python3 wheel命令包命名为python-wheel-common。安装这个也修复了“失败的建设车轮”的错误。