无法为使用 PEP 517 且无法直接安装的 _ 构建轮子 - 简单的解决方案

Sea*_*yne 8 python pip virtualenv python-3.x pep517

我正在尝试安装一个使用 PEP 517 的软件包。由于涉及 517 的车轮构建错误,最新版本的 Pip 不允许我安装。

过去,我通过降级 Pip、安装软件包并将 Pip 升级回最新版本来解决此问题。但是,在我的 virtualenv 中降级 pip 后,如果我尝试运行“Pip install black”,我会收到 No module named 'pip._internal.cli.main' 错误。

我该如何解决这个问题?

小智 25

在安装 Tensorflow 期间,h5py 库出现了此错误。我检查了 h5py 文档,以确保我拥有正确版本的 pip 和 setuptools,https://pip.pypa.io/en/stable/reference/pip/

pip install --upgrade pip setuptools wheel
Run Code Online (Sandbox Code Playgroud)

然后,我检查了错误日志,以确定导致 h5py 在安装后端依赖项时失败的原因。我确定它是 libhdf5.so,其中显示“错误:libhdf5.so 无法打开共享对象文件:没有这样的文件或目录”。我通过运行以下命令安装了该库:

sudo apt-get install libhdf5-dev
Run Code Online (Sandbox Code Playgroud)

此后,h5py 与 TensorFlow 一起成功安装。我遇到过因缺少依赖项而导致的类似 PEP 517 错误:

  1. 错误:无法为使用 PEP 517 的 glpk 构建轮子,并且无法直接安装
  2. 错误:无法为使用 PEP 517 的 scipy 构建轮子,并且无法直接安装

PEP 517 错误

  • 请[不要发布代码图像、错误消息或其他文本数据。](https://meta.stackoverflow.com/questions/285551/why-not-upload-images-of-code-on-so- when-asking-a-question/285557#285557) - 特别是微小的、对比度极低的图像。 (8认同)

Joe*_*yie 14

此链接中的解决方案帮助了我:

pip install --upgrade pip setuptools wheel
Run Code Online (Sandbox Code Playgroud)


Sea*_*yne 8

处理错误的最简单方法

"Could not build wheels for ____ which use PEP 517 and cannot be installed directly" 
Run Code Online (Sandbox Code Playgroud)

如下:

sudo pip3 install _____ --no-binary :all:
Run Code Online (Sandbox Code Playgroud)

其中____显然是您要安装的库的名称。

  • 对我不起作用。评论将帮助您了解为什么您认为此建议有帮助。另外,使用 sudo 安装 pip 也不是一个好主意。OP显然使用了虚拟环境。 (3认同)
  • 我是OP并且它有效,这就是为什么我自己回答了我自己的问题 (2认同)

小智 7

有时,这可能是由于缓存问题造成的,并且非二进制标志不起作用。在这种情况下尝试一下pip install <insert package names> --no-cache-dir

这似乎是使用 python 安装软件包时经常出现的问题。首先,检查以确保您已激活您认为应该进入的 virtualenv,然后检查是否有wheel pkg(如果没有则 pip installwheel)。如果这些失败,那么 --no-cache-dir 或 --no-binary 标志就会发挥作用。阅读每个包的 pypi 文档也会有帮助。祝你好运!


Ale*_*tos 5

在这里发布答案作为未来搜索者的参考。

我尝试安装 Pillow 并收到此错误。尝试了很多不同的方法,但没有一个有效。然后我将Python(从3.9)降级到3.8,然后再次尝试通过pip安装,然后它就工作了。

如果失败,请尝试降级 Python,它可能会起作用。

  • 尝试过 python 2.7、3.0、。3.6 ..根本没有成功 (2认同)

小智 5

当我遇到这个错误时,问题是我正在拉取的包的元数据配置不正确,这导致构建轮子失败。

为了找到我运行的错误,pip --verbose install <my_package>这让我了解了轮子构建失败的原因,并在上游修复它。