首页 > 解决方案 > 安装 web3 [tester] 时出错:blake2b-py 构建轮子失败

问题描述

我正在尝试安装 web3 测试器,pip install -U web3[tester]但总是出现此错误。

Pip 和 setuptools 都在其当前版本上。

完整的错误:

Building wheels for collected packages: blake2b-py
  Building wheel for blake2b-py (PEP 517) ... error
  ERROR: Command errored out with exit status 1:
   command: /Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9 /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py build_wheel /var/folders/rf/h_h1jw411_l1d366hm2pybm00000gn/T/tmpigyl8c27
       cwd: /private/var/folders/rf/h_h1jw411_l1d366hm2pybm00000gn/T/pip-install-yu97ljpj/blake2b-py_61e5c1e928bf4c3fa77c17397812b60f
  Complete output (20 lines):
     Compiling proc-macro2 v1.0.24
     Compiling unicode-xid v0.2.1
     Compiling syn v1.0.58
     Compiling proc-macro-hack v0.5.19
     Compiling memchr v2.3.4
     Compiling serde_derive v1.0.118
     Compiling serde v1.0.118
     Compiling ryu v1.0.5
     Compiling lazy_static v1.4.0
     Compiling serde_json v1.0.61
  error: could not compile `ryu`
  
  To learn more, run the command again with --verbose.
  warning: build failed, waiting for other jobs to finish...
  error: build failed
   maturin failed
    Caused by: Failed to build a native library through cargo
    Caused by: Cargo build finished with "exit code: 101": `cargo rustc --message-format json --manifest-path Cargo.toml --lib --release -- -C link-arg=-undefined -C link-arg=dynamic_lookup`
  Running `maturin pep517 build-wheel -i python`
  Error: Command '['maturin', 'pep517', 'build-wheel', '-i', 'python']' returned non-zero exit status 1.
  ----------------------------------------
  ERROR: Failed building wheel for blake2b-py
Failed to build blake2b-py
ERROR: Could not build wheels for blake2b-py which use PEP 517 and cannot be installed directly

当我再次使用 --verbose 运行命令时,我得到:

error: failed to run custom build command for `pyo3 v0.8.5`

  Caused by:
    process didn't exit successfully: `/private/var/folders/rf/h_h1jw411_l1d366hm2pybm00000gn/T/pip-install-ewvt5uxi/blake2b-py_af0db53ab76c4fb48590a7692b7f3b09/target/release/build/pyo3-3ab2c629ff3fb44d/build-script-build` (exit code: 101)
    --- stderr
    thread 'main' panicked at 'Error: pyo3 requires a nightly or dev version of Rust.', /Users/Pancake/.cargo/registry/src/github.com-1ecc6299db9ec823/pyo3-0.8.5/build.rs:542:9
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
   maturin failed
    Caused by: Failed to build a native library through cargo
    Caused by: Cargo build finished with "exit code: 101": `cargo rustc --message-format json --manifest-path Cargo.toml --lib --release -- -C link-arg=-undefined -C link-arg=dynamic_lookup`
  Running `maturin pep517 build-wheel -i python`
  Error: Command '['maturin', 'pep517', 'build-wheel', '-i', 'python']' returned non-zero exit status 1.
  Building wheel for blake2b-py (PEP 517) ... error
  ERROR: Failed building wheel for blake2b-py
Failed to build blake2b-py
ERROR: Could not build wheels for blake2b-py which use PEP 517 and cannot be installed directly
Exception information:
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pip/_internal/cli/base_command.py", line 224, in _main
    status = self.run(options, args)
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pip/_internal/cli/req_command.py", line 180, in wrapper
    return func(self, options, args)
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pip/_internal/commands/install.py", line 361, in run
    raise InstallationError(
pip._internal.exceptions.InstallationError: Could not build wheels for blake2b-py which use PEP 517 and cannot be installed directly
Removed build tracker: '/private/var/folders/rf/h_h1jw411_l1d366hm2pybm00000gn/T/pip-req-tracker-zvzjdf19'

标签: pythonmacoserror-handlingrust-cargoweb3

解决方案


stderr 线程“主”在“错误:pyo3 需要夜间或开发版本的 Rust。”时惊慌失措。

您必须安装 Rust 的每晚或开发版本(您是否安装了 rust?)

编辑您可以在 macOS 上使用 shell 中的以下命令每晚安装 rust:

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

推荐阅读