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

Could not build wheels for _ which use PEP 517 and cannot be installed directly - Easy Solution

我正在尝试安装一个使用 PEP 517 的包。最新版本的 Pip 不允许我安装,因为涉及 517 的 wheel 构建的错误。

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

我该如何解决这个问题?

最简单的错误处理方案

"Could not build wheels for ____ which use PEP 517 and cannot be installed directly" 

如下:

sudo pip3 install _____ --no-binary :all:

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

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

pip install --upgrade pip setuptools wheel

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

安装了库
sudo apt-get install libhdf5-dev

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

  1. ERROR: Could not build wheels for glpk which use PEP 517 and cannot be installed directly
  2. ERROR: Could not build wheels for scipy which use PEP 517 and cannot be installed directly

在此张贴答案作为未来搜索者的参考。

我尝试安装 Pillow 并遇到此错误。尝试了许多不同的方法,其中 none 有效。 然后我将 Python(从 3.9)降级到 3.8,然后再次尝试通过 pip 安装,然后成功了。

如果对您来说失败了,请尝试降级 Python,它可能会起作用。

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

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

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

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

我在卸载和重新安装 miniconda 时也遇到了同样的问题。

我不知道为什么,但在我的注册表项中 Computer\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Command Processor AutoRun 已设置为 if exist。我删除了该值,然后它像以前一样工作正常。

拥有 Python 3.10 的任何人都应该尝试降级。 通过 pip 安装 numpy 和 pandas 时面临同样的问题。 最后一件有用的事情是降级到 Python 3.8.x。 (还没有尝试过 Python 3.9。)

在 OSX 上 SYSTEM_VERSION_COMPAT=1 在我的环境中 运行 pip 解决了它:

export SYSTEM_VERSION_COMPAT=1