错误:无法为使用 PEP 517 且无法直接安装的密码学构建***

Posted

技术标签:

【中文标题】错误:无法为使用 PEP 517 且无法直接安装的密码学构建***【英文标题】:ERROR: Could not build wheels for cryptography which use PEP 517 and cannot be installed directly 【发布时间】:2020-04-13 22:39:17 【问题描述】:

当 pip 为加密包构建***时出现错误。

错误:

LINK : fatal error LNK1181: cannot open input file 'libssl.lib'
  error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\BuildTools\\VC\\Tools\\MSVC\\14.16.27023\\bin\\HostX86\\x86\\link.exe' failed with exit status 1181
  ----------------------------------------
  ERROR: Failed building wheel for cryptography
  Running setup.py clean for cryptography
Failed to build cryptography
ERROR: Could not build wheels for cryptography which use PEP 517 and cannot be installed directly

我已经安装了 OpenSSL 并按照this post 中的建议设置了环境变量,但问题仍然存在。我的设置详情:

系统 - Windows 10 Python - 3.8 点 - 19.3.1

【问题讨论】:

在 Windows 上构建加密是一个非常复杂的过程,除非您尝试安装较旧的加密版本,否则不需要它。密码学为密码学 2.8+ 提供 Python 3.8 windows ***。如果你直接运行pip install cryptography 会发生什么? 直接安装就可以了。但是,当我将它作为 requirements.txt 的一部分安装时,会显示此错误。我应该如何禁用构建***的选项?如果我这样做会有什么后果? 在我的情况下,有必要将 pip 更新到最新版本 @dreo 我已经更新了 Pip 但它仍然为包构建*** requirements.txt 是否将加密固定到版本 【参考方案1】:

您可以尝试安装 cryptography==3.1.1 包而不是 cryptography 35 版本。

pip install cryptography==3.1.1

如果您仍然面临加密包集成方面的挑战。

您可以通过以下步骤解决。

python -m pip install --upgrade pip

sudo pip install -U pip setuptools

【讨论】:

【参考方案2】:

也有这个问题。如果您使用的是 alpine,请确保安装了密码学的所有依赖项。 在我的情况下,货物包裹丢失并导致问题。

sudo apk add gcc musl-dev python3-dev libffi-dev openssl-dev cargo

https://cryptography.io/en/latest/installation.html#building-cryptography-on-linux

【讨论】:

【参考方案3】:

在我的情况下(windows 10 + conda)更新 pip 解决了这个问题:

python -m pip install --upgrade pip

【讨论】:

文档说升级 pip,你将使用分布式二进制文件 cryptography.io/en/latest/installation.html#rust【参考方案4】:
pip install --upgrade pip

尝试升级您的环境的 pip 对我来说可以正常工作。

【讨论】:

【参考方案5】:

我有同样的问题。 pip3 版本是 19.* 升级后它可以工作

sudo -H pip3 install --upgrade pip

【讨论】:

【参考方案6】:

我遇到了这个问题,我刚刚安装了 rust 并为我修复了问题 您可以在安装 rust 编程语言后安装密码学的最终版本(不要尝试 pip install rust,它不是 python 包) https://www.rust-lang.org/tools/install

【讨论】:

【参考方案7】:

碰到了这个问题,解决办法其实是在pip尝试在密码学之前安装openssl的消息中:

  generating cffi module 'build/temp.linux-x86_64-3.7/_openssl.c'
  running build_rust
  
      =============================DEBUG ASSISTANCE=============================
      If you are seeing a compilation error please try the following steps to
      successfully install cryptography:
      1) Upgrade to the latest pip and try again. This will fix errors for most
         users. See: https://pip.pypa.io/en/stable/installing/#upgrading-pip
      2) Read https://cryptography.io/en/latest/installation.html for specific
         instructions for your platform.
      3) Check our frequently asked questions for more information:
         https://cryptography.io/en/latest/faq.html
      4) Ensure you have a recent Rust toolchain installed:
         https://cryptography.io/en/latest/installation.html#rust
      5) If you are experiencing issues with Rust for *this release only* you may
         set the environment variable `CRYPTOGRAPHY_DONT_BUILD_RUST=1`.
      =============================DEBUG ASSISTANCE=============================

只需运行 pip update 命令似乎对我有用:

pip install -U pip

将 pip 从 18.0 版更新到 21.0.1 版

【讨论】:

【参考方案8】:

您可以使用最新版本

python3 -m pip install --no-use-pep517 cryptography

在 arm32v7 上使用 ubuntu:18.04 为我工作 (而不是按照错误消息的建议安装完整的 rust 编译器和 build-essentials,或升级 pip(对我的 armbian 上的 ubuntu:18.04 没有影响))

【讨论】:

错误:禁用 PEP 517 处理无效:项目在 pyproject.toml 中指定 setuptools.build_meta 的构建后端【参考方案9】:

我遇到了同样的问题,并尝试使用上述步骤安装 openssl,但仍然无法在 windows 10 上继续。后来我将 pip 升级到最新版本并再次尝试,它没有任何问题。

我建议将 pip 升级到最新版本并在继续安装 openssl 之前尝试一下

【讨论】:

这对我有用,但我还必须升级我的 tox 目录中的 pip 以启用 tox 来设置我的依赖项。作为参考,我使用的是 OSX Big Sur,python 3.8,并将两个点从 20.3.3 升级到 21.0。【参考方案10】:

TLDR;

尝试使用cryptography==3.1.1

详情:

这发生在Python 3.9.0Windows 10 PC 上。 我在 requirements.txt 中有以下内容

cryptography==2.8

我删除了版本,只在 requirements.txt 文件中保留了密码,如下所示

cryptography

保存了 requirements.txt 然后我运行了

pip install -r requirements.txt

安装成功。 然后我通过运行以下命令冻结requirements.txt

pip freeze > requirements.txt

然后 requirements.txt 更新为cryptography==3.1.1

【讨论】:

我收到以下错误:错误:构建加密轮失败 无法构建加密错误:无法构建使用 PEP 517 且无法直接安装的加密轮 你按照上面提到的方法了吗? 是的@navule,我遵循了所有步骤。 他们在 v3.4 中开始使用 Rust,所以为了避免 Rust,您可以使用的最新版本是 cryptography==3.3.2 @Igor Jerosimić thx 伙计,这是唯一有意义且真正有帮助的答案。 Navule 只是随机更改版本,没有任何类型的扩展。【参考方案11】:

在 requirements.txt 中将加密设置为 2.8 版解决了该问题。

【讨论】:

为我工作。我在设置 ESP Rainmaker(CLI 设置)时遇到了这个问题【参考方案12】:

我尝试在 Windows 10 上使用 Python 3.8.1 安装 Scrapy 时遇到此错误,但它解决了安装 pip 的最新版本(在我的情况下为 19.3.1),并且所有使用 pip 的方法都是这样:

python -m pip install scrapy --user

【讨论】:

谢谢。这也对我有用。我的系统是 Windows 10、Python 3.8.2、Pycharm,并且 netmiko 没有从 Pycharm 的 requirements.txt 文件中安装。我进入了 venv,然后运行 ​​pip install cryptography ,它也不起作用。然后我尝试了 python -m pip install cryptography ,它安装没有任何问题。之后回到Pycharm需求文件,点击netmiko入口安装,运行顺利。

以上是关于错误:无法为使用 PEP 517 且无法直接安装的密码学构建***的主要内容,如果未能解决你的问题,请参考以下文章

错误安装 streamlit 它说“错误:无法为使用 PEP 517 且无法直接安装的 pyarrow 构建***”

错误:无法为使用 PEP 517 且无法直接安装的 scipy 构建***

(Python:discord.py)错误:无法为使用 PEP 517 且无法直接安装的 multidict、yarl 构建***

无法在适用于 Windows 的 Python 3.7 上安装 win32core

如何将 PEP 517 和 PEP 518 用于本地可用(不在 PYPI 上)系统范围的 CLI Python 脚本

错误记录Mac 中 Python 报错 ( ERROR: Could not build wheels for numpy which use PEP 517 and cannot be in )(代