ethereum / blake2b-py

Blake2b hashing in Rust with Python bindings.
MIT License
8 stars 17 forks source link

PyPy Support #6

Open fubuloubu opened 3 years ago

fubuloubu commented 3 years ago

blake2b-py currently doesn't support compiling for pypy 3.7 without additional configuration (assuming rust is installed)

$ pip install blake2b-py
...bash
Building wheels for collected packages: blake2b-py
  Building wheel for blake2b-py (PEP 517) ... error
  ERROR: Command errored out with exit status 1:
   command: ~/.pyenv/versions/pypy3.7-7.3.4/envs/ape-pypy/bin/pypy3 ~/.pyenv/versions/pypy3.7-7.3.4/envs/ape-pypy/site-packages/pip/_vendor/pep517/in_process/_in_process.py build_wheel /tmp/tmpkqxloceo
       cwd: /tmp/pip-install-36bcisym/blake2b-py_5d24a7fa36444f4f9f3f16e5f806ed71
  Complete output (47 lines):
  Running `maturin pep517 build-wheel -i ~/.pyenv/versions/pypy3.7-7.3.4/envs/ape-pypy/bin/pypy3`
     Compiling proc-macro2 v1.0.26
     Compiling unicode-xid v0.2.2
     Compiling syn v1.0.72
     Compiling proc-macro-hack v0.5.19
     Compiling serde_derive v1.0.125
     Compiling memchr v2.4.0
     Compiling ryu v1.0.5
     Compiling serde v1.0.125
     Compiling serde_json v1.0.64
     Compiling itoa v0.4.7
     Compiling autocfg v1.0.1
     Compiling regex-syntax v0.6.25
     Compiling version_check v0.9.3
     Compiling libc v0.2.94
     Compiling inventory v0.1.10
     Compiling unindent v0.1.7
     Compiling lazy_static v1.4.0
     Compiling spin v0.5.2
     Compiling num-traits v0.2.14
     Compiling aho-corasick v0.7.18
     Compiling quote v1.0.9
     Compiling paste-impl v0.1.18
     Compiling paste v0.1.18
     Compiling regex v1.5.3
     Compiling pyo3-derive-backend v0.8.5
     Compiling ghost v0.1.2
     Compiling inventory-impl v0.1.10
     Compiling indoc-impl v0.3.6
     Compiling ctor v0.1.20
     Compiling pyo3cls v0.8.5
     Compiling indoc v0.3.6
     Compiling pyo3 v0.8.5
  error: failed to run custom build command for `pyo3 v0.8.5`

  Caused by:
    process didn't exit successfully: `/tmp/pip-install-36bcisym/blake2b-py_5d24a7fa36444f4f9f3f16e5f806ed71/target/release/build/pyo3-412cf57dbee04baa/build-script-build` (exit code: 101)
    --- stderr
    thread 'main' panicked at 'Error: pyo3 requires a nightly or dev version of Rust.', ~/.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 --release --lib --`
  🍹 Building a mixed python/rust project
  🔗 Found pyo3 bindings
  🐍 Found PyPy 3.7 at ~/.pyenv/versions/pypy3.7-7.3.4/envs/ape-pypy/bin/pypy3
  Error: command ['maturin', 'pep517', 'build-wheel', '-i', '~/.pyenv/versions/pypy3.7-7.3.4/envs/ape-pypy/bin/pypy3'] 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

Easy solution is to just release binary wheels for pypy (3.7 preferred, but 3.6 too maybe)

krypston104 commented 1 year ago

I am using python 3.10 and I am getting this same error. Can you please explain exactly the steps to get around it? I neeed this installed to keep working. Thank you