【问题标题】:Error installing cryptography on Big Sur running on Apple Silicon在 Apple Silicon 上运行的 Big Sur 上安装密码术时出错
【发布时间】:2021-05-18 03:00:02
【问题描述】:

我已尝试在我全新的 Air M1 上安装加密技术。但是出了点问题。 我已经尝试了谷歌的一些解决方案,但没有帮助。

环境详情:

  • Python 3.9.1
  • 点 21.0.1
  • macOS BigSur 11.2 Appl1 M1
  • cffi==1.14.5
  • openssl@1.1

重现步骤:

pip3 install cryptography

追溯:

  copying src/cryptography/hazmat/bindings/openssl/binding.py -> build/lib.macosx-11-arm64-3.9/cryptography/hazmat/bindings/openssl
  running egg_info
  writing src/cryptography.egg-info/PKG-INFO
  writing dependency_links to src/cryptography.egg-info/dependency_links.txt
  writing requirements to src/cryptography.egg-info/requires.txt
  writing top-level names to src/cryptography.egg-info/top_level.txt
  reading manifest file 'src/cryptography.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  no previously-included directories found matching 'docs/_build'
  warning: no previously-included files found matching 'vectors'
  warning: no previously-included files matching '*' found under directory 'vectors'
  warning: no previously-included files matching '*' found under directory '.github'
  warning: no previously-included files found matching 'release.py'
  warning: no previously-included files found matching '.coveragerc'
  warning: no previously-included files found matching 'codecov.yml'
  warning: no previously-included files found matching '.readthedocs.yml'
  warning: no previously-included files found matching 'dev-requirements.txt'
  warning: no previously-included files found matching 'tox.ini'
  warning: no previously-included files found matching 'mypy.ini'
  warning: no previously-included files matching '*' found under directory '.zuul.d'
  warning: no previously-included files matching '*' found under directory '.zuul.playbooks'
  writing manifest file 'src/cryptography.egg-info/SOURCES.txt'
  copying src/cryptography/py.typed -> build/lib.macosx-11-arm64-3.9/cryptography
  running build_ext
  generating cffi module 'build/temp.macosx-11-arm64-3.9/_padding.c'
  creating build/temp.macosx-11-arm64-3.9
  generating cffi module 'build/temp.macosx-11-arm64-3.9/_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=============================

  error: Can not find Rust compiler
  ----------------------------------------
  ERROR: Failed building wheel for cryptography
Failed to build cryptography
ERROR: Could not build wheels for cryptography which use PEP 517 and cannot be installed directly

【问题讨论】:

  • 我认为最近,python 密码学模块需要 Rust 来编译。从长远来看,这将带来巨大的好处,但据报道,这种过渡比以前可能更加坎坷......
  • 所以要等m1什么时候支持?
  • M1 似乎现在支持 Rust,所以应该只是设置它的问题。不过,我不是问这个问题的合适人选……
  • 您可以尝试更合适的解决方案:stackoverflow.com/a/66422219/9521312

标签: python python-3.x openssl


【解决方案1】:

它在新更新后对我有用。

sudo xcode-select --install.

【讨论】:

    【解决方案2】:

    Rust 目前在 m1 上通过

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

    但是,在修复 rust 之后,您很可能会遇到另一个错误。

    导入 _cffi_backend 作为后端 导入错误:dlopen(/private/var/folders/fd/s3rl30nj6790c3p5df6x2_700000gn/T/pip-build-env-w44a7bqz/overlay/lib/python3.x/site-packages/_cffi_backend.cpython-3X-darwin.so,2):没有找到合适的图片。发现: /private/var/folders/fd/s3rl30nj6790c3p5df6x2_700000gn/T/pip-build-env-w44a7bqz/overlay/lib/python3.X/site-packages/_cffi_backend.cpython-3X-darwin.so:mach-o,但架构错误

    这里讨论了这个问题,其中指出 CFFI 维护者不支持 m1 mac:https://github.com/gevent/gevent/issues/1721

    【讨论】:

    • 在 sabik 的最后一条评论之后,我已经安装了 rust,这解决了问题。谢谢你们!
    猜你喜欢
    • 2021-03-13
    • 2021-03-03
    • 1970-01-01
    • 2021-03-11
    • 1970-01-01
    • 2021-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多