安装 web3[tester] 时出错:blake2b-py 构建轮子失败

Roy*_*ush 2 python macos error-handling rust-cargo web3py

我正在尝试安装 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
Run Code Online (Sandbox Code Playgroud)

当我使用 --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'
Run Code Online (Sandbox Code Playgroud)

Pro*_*mer 6

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

你必须安装 Rust 的 nightly 或 dev 版本(你安装了 rust 吗?)

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

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup default nightly
Run Code Online (Sandbox Code Playgroud)