51

当 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 并按照本文中的建议设置了环境变量,但问题仍然存在。我的设置细节:

  • 系统 - Windows 10
  • 蟒蛇 - 3.8
  • 点 - 19.3.1
4

12 回答 12

39

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

于 2020-02-15T17:43:27.840 回答
35

TLDR;

尝试使用cryptography==3.1.1

细节:

这发生Python 3.9.0Windows 10PC上。我在 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

于 2020-10-17T16:33:21.013 回答
31

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

python -m pip install --upgrade pip
于 2021-03-10T00:48:00.683 回答
30

也有这个问题。如果您使用的是 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

于 2021-02-22T08:55:01.517 回答
12

遇到这个问题,解决方案实际上是在 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 版

于 2021-02-18T20:43:37.793 回答
5
pip install --upgrade pip

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

于 2021-06-15T09:50:48.603 回答
4

您可以使用最新版本

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

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

于 2021-02-10T07:52:02.443 回答
2

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

python -m pip install scrapy --user
于 2019-12-29T02:42:04.860 回答
2

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

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

于 2020-12-19T07:22:33.390 回答
1

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

sudo -H pip3 install --upgrade pip
于 2021-06-11T18:26:41.970 回答
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
于 2021-11-09T04:45:31.707 回答
0

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

于 2021-04-23T02:02:27.457 回答