pip安装中“ X的建筑车轮失败”是什么意思?

时间:2018-11-08 09:33:53

标签: python python-3.x pip python-wheel

在SO上,这是一个非常受欢迎的问题,但是我看过的所有答案中没有一个清楚地说明此错误的真正含义以及发生的原因。

造成混乱的一个原因是,例如当您进行char *seive; void generate_seive( int n ) { seive = calloc( 1, n ); if( !seive ) { printf("E..."); exit(0); } // Generate Seive for( int i = 2; i < n ; i ++) { if( seive[i] == 1 ) continue; // Essentially mark all primes as 0 and // non-primes as 1's seive[i] = 0; for( int j = i + i ; j < n ; j += i ) seive[j] = 1; } } int main() { generate_seive(100); // Iterating through the generated Seive // should do for( int i = 2; i < 100 ; i ++ ) if( seive[i] == 0 ) printf("%d\n", i); return 0; } 时,首先会收到以下错误:

pip install pycparser

,然后显示该软件包为的消息:

Failed building wheel for pycparser


Successfully installed pycparser-2.19

这是怎么回事?

(我想了解如何发生某些故障但仍然可以安装,以及是否可以信任此软件包正常运行?)

到目前为止,我发现的最好的部分解释是this


顺便说一句/解决方案

解决上述问题的方法通常是确保使用以下方法禁用缓存的副本: # 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

14 个答案:

答案 0 :(得分:8)

昨天,我在运行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

(来自here。)

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

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

答案 1 :(得分:4)

(这里是点子维护者!)

如果包裹不是车轮,则pip尝试为其构建车轮(通过setup.py bdist_wheel)。如果由于某种原因导致安装失败,您将收到“ pycparser的构建车轮故障”消息,并且pip退回到直接安装(通过setup.py install)。

一旦有了轮子,pip可以通过正确打开包装来安装轮子。 pip尝试尽可能多地通过轮子安装软件包。这是因为使用滚轮具有多种优势(例如安装速度更快,可缓存,不再执行代码等)。


您的错误消息是由于缺少wheel软件包所致,其中包含在setup.py bdist_wheel中构建轮子所需的逻辑。 (pip install wheel可以解决这个问题。)


以上是当前默认的旧行为;我们会默认在将来的某个时间切换到PEP 517,为此我们将转到基于标准的流程。我们还为此提供了隔离的版本,因此,默认情况下您会在这些环境中安装滚轮。 :)

答案 2 :(得分:2)

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

那里有许多教程,它们解释了如何将程序包发布到PyPi。以下是我使用过的几对;

medium
real python

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

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

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

因此,错误可能仅与开发人员如何打包和部署项目有关。我们当中没有一个人天生就知道如何使用PyPi,如果它们是在错误的教程上发生的,那么您可以填补空白。

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

答案 3 :(得分:2)

尝试一下:

sudo apt-get install libpcap-dev libpq-dev

当我安装了这两个软件时,它对我有用。

有关更多信息,请参见链接here

答案 4 :(得分:2)

错误:

系统:aws ec2实例(t2小)

issue:通过以下方式安装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

希望这会有所帮助

答案 5 :(得分:1)

自那时以来,似乎没有人提到我自己。对于上述问题,我自己的解决方案通常是确保使用以下方法禁用 cached 副本: pip install <package> --no-cache-dir

答案 6 :(得分:0)

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

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

apt python3 wheel命令包的名称为python3-pip。安装此工具也可以为我解决“建筑车轮故障”错误。

答案 7 :(得分:0)

当我尝试安装pip install django-imagekit时,我得到了相同的消息。因此,我运行了pip install wheel(我安装了python 2.7),然后重新运行了pip install django-imagekit,它开始工作了。谢谢

答案 8 :(得分:0)

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

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

sudo apt install python3-pip -y

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

sudo pip3 install <package>

答案 9 :(得分:0)

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

错误

Failed building wheel for Brotli

我通过从here下载.whl文件解决了该问题 并使用以下命令进行安装

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

答案 10 :(得分:0)

在我的情况下,创建venv后更新点差版本,此点差从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之后安装了车轮包

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'

答案 11 :(得分:0)

当您没有wheel所需的软件包时,通常会出现此错误。 如果您使用的是 python3,则安装 python3-dev 或 python2-dev 如果您使用的是 python 2。

须藤 apt-get 安装 python3-dev

sudo apt-get install python2-dev

答案 12 :(得分:-1)

如果您使用的是 Linux 平台,请确保安装了表示 nmap 工具的命令行,否则库 nmap 将无法工作。 python-nmap 使用 nmap Linux 工具。

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

sudo yum install namp

答案 13 :(得分:-3)

这可能对您有帮助! ....

卸载pycparser:

pip uninstall pycparser

重新安装pycparser:

pip install pycparser

在安装termcolor时出现相同的错误,并通过重新安装进行了修复。