Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Please support Python 3.13 #1816

Open
2 tasks done
pavoljuhas opened this issue Jan 24, 2025 · 5 comments
Open
2 tasks done

Please support Python 3.13 #1816

pavoljuhas opened this issue Jan 24, 2025 · 5 comments
Assignees
Labels
enhancement ✨ A request for a new feature.

Comments

@pavoljuhas
Copy link

Pre-Request Checklist

  • I am running the latest versions of pyQuil and the Forest SDK
  • I checked to make sure that this feature has not already been requested

cc @kalzoo, @jselig-rigetti

Issue Description

I tried to install pyquil-4.16.0 to a fresh Python 3.13.0 virtual environment on Debian Linux,
however this failed on compiling a wheel for the qcs-api-client-common dependency -

pip install "pyquil==4.16.0"
Collecting pyquil==4.16.0
  Using cached pyquil-4.16.0-py3-none-any.whl.metadata (10 kB)
Collecting deprecated<2.0.0,>=1.2.14 (from pyquil==4.16.0)
  Using cached Deprecated-1.2.15-py2.py3-none-any.whl.metadata (5.5 kB)
Collecting matplotlib-inline<0.2.0,>=0.1.7 (from pyquil==4.16.0)
  Using cached matplotlib_inline-0.1.7-py3-none-any.whl.metadata (3.9 kB)
Collecting networkx>=2.5 (from pyquil==4.16.0)
  Using cached networkx-3.4.2-py3-none-any.whl.metadata (6.3 kB)
Collecting numpy<2.0,>=1.25 (from pyquil==4.16.0)
  Using cached numpy-1.26.4-cp313-cp313-linux_x86_64.whl
Collecting packaging<24.0,>=23.1 (from pyquil==4.16.0)
  Using cached packaging-23.2-py3-none-any.whl.metadata (3.2 kB)
Collecting qcs-sdk-python>=0.20.1 (from pyquil==4.16.0)
  Using cached qcs_sdk_python-0.21.6.tar.gz (539 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting quil>=0.15.2 (from pyquil==4.16.0)
  Using cached quil-0.15.2.tar.gz (456 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting rpcq<4.0.0,>=3.11.0 (from pyquil==4.16.0)
  Using cached rpcq-3.11.0-py3-none-any.whl
Collecting scipy<2.0,>=1.11 (from pyquil==4.16.0)
  Using cached scipy-1.15.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (61 kB)
Collecting types-deprecated<2.0.0.0,>=1.2.9.3 (from pyquil==4.16.0)
  Using cached types_Deprecated-1.2.15.20241117-py3-none-any.whl.metadata (1.8 kB)
Collecting wrapt<2,>=1.10 (from deprecated<2.0.0,>=1.2.14->pyquil==4.16.0)
  Using cached wrapt-1.17.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.4 kB)
Collecting traitlets (from matplotlib-inline<0.2.0,>=0.1.7->pyquil==4.16.0)
  Using cached traitlets-5.14.3-py3-none-any.whl.metadata (10 kB)
Collecting qcs-api-client-common>=0.10.0 (from qcs-sdk-python>=0.20.1->pyquil==4.16.0)
  Using cached qcs_api_client_common-0.10.0.tar.gz (68 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting msgpack<2.0,>=0.6 (from rpcq<4.0.0,>=3.11.0->pyquil==4.16.0)
  Using cached msgpack-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (8.4 kB)
Collecting python-rapidjson (from rpcq<4.0.0,>=3.11.0->pyquil==4.16.0)
  Using cached python_rapidjson-1.20-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (22 kB)
Collecting pyzmq>=17 (from rpcq<4.0.0,>=3.11.0->pyquil==4.16.0)
  Using cached pyzmq-26.2.0-cp313-cp313-manylinux_2_28_x86_64.whl.metadata (6.2 kB)
Collecting ruamel.yaml (from rpcq<4.0.0,>=3.11.0->pyquil==4.16.0)
  Using cached ruamel.yaml-0.18.10-py3-none-any.whl.metadata (23 kB)
Collecting grpcio>=1.63.0 (from qcs-api-client-common>=0.10.0->qcs-sdk-python>=0.20.1->pyquil==4.16.0)
  Using cached grpcio-1.70.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.9 kB)
Collecting grpc-interceptor>=0.15.0 (from qcs-api-client-common>=0.10.0->qcs-sdk-python>=0.20.1->pyquil==4.16.0)
  Using cached grpc_interceptor-0.15.4-py3-none-any.whl.metadata (8.4 kB)
Collecting httpx>=0.27.0 (from qcs-api-client-common>=0.10.0->qcs-sdk-python>=0.20.1->pyquil==4.16.0)
  Using cached httpx-0.28.1-py3-none-any.whl.metadata (7.1 kB)
Collecting anyio (from httpx>=0.27.0->qcs-api-client-common>=0.10.0->qcs-sdk-python>=0.20.1->pyquil==4.16.0)
  Using cached anyio-4.8.0-py3-none-any.whl.metadata (4.6 kB)
Collecting certifi (from httpx>=0.27.0->qcs-api-client-common>=0.10.0->qcs-sdk-python>=0.20.1->pyquil==4.16.0)
  Using cached certifi-2024.12.14-py3-none-any.whl.metadata (2.3 kB)
Collecting httpcore==1.* (from httpx>=0.27.0->qcs-api-client-common>=0.10.0->qcs-sdk-python>=0.20.1->pyquil==4.16.0)
  Using cached httpcore-1.0.7-py3-none-any.whl.metadata (21 kB)
Collecting idna (from httpx>=0.27.0->qcs-api-client-common>=0.10.0->qcs-sdk-python>=0.20.1->pyquil==4.16.0)
  Using cached idna-3.10-py3-none-any.whl.metadata (10 kB)
Collecting h11<0.15,>=0.13 (from httpcore==1.*->httpx>=0.27.0->qcs-api-client-common>=0.10.0->qcs-sdk-python>=0.20.1->pyquil==4.16.0)
  Using cached h11-0.14.0-py3-none-any.whl.metadata (8.2 kB)
Collecting sniffio>=1.1 (from anyio->httpx>=0.27.0->qcs-api-client-common>=0.10.0->qcs-sdk-python>=0.20.1->pyquil==4.16.0)
  Using cached sniffio-1.3.1-py3-none-any.whl.metadata (3.9 kB)
Using cached pyquil-4.16.0-py3-none-any.whl (202 kB)
Using cached Deprecated-1.2.15-py2.py3-none-any.whl (9.9 kB)
Using cached matplotlib_inline-0.1.7-py3-none-any.whl (9.9 kB)
Using cached networkx-3.4.2-py3-none-any.whl (1.7 MB)
Using cached packaging-23.2-py3-none-any.whl (53 kB)
Using cached scipy-1.15.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (40.2 MB)
Using cached types_Deprecated-1.2.15.20241117-py3-none-any.whl (3.8 kB)
Using cached msgpack-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (399 kB)
Using cached pyzmq-26.2.0-cp313-cp313-manylinux_2_28_x86_64.whl (860 kB)
Using cached wrapt-1.17.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (89 kB)
Using cached python_rapidjson-1.20-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB)
Using cached ruamel.yaml-0.18.10-py3-none-any.whl (117 kB)
Using cached traitlets-5.14.3-py3-none-any.whl (85 kB)
Using cached grpc_interceptor-0.15.4-py3-none-any.whl (20 kB)
Using cached grpcio-1.70.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB)
Using cached httpx-0.28.1-py3-none-any.whl (73 kB)
Using cached httpcore-1.0.7-py3-none-any.whl (78 kB)
Using cached anyio-4.8.0-py3-none-any.whl (96 kB)
Using cached idna-3.10-py3-none-any.whl (70 kB)
Using cached certifi-2024.12.14-py3-none-any.whl (164 kB)
Using cached h11-0.14.0-py3-none-any.whl (58 kB)
Using cached sniffio-1.3.1-py3-none-any.whl (10 kB)
Building wheels for collected packages: qcs-sdk-python, quil, qcs-api-client-common
  Building wheel for qcs-sdk-python (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for qcs-sdk-python (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [114 lines of output]
      Running `maturin pep517 build-wheel -i /tmp/venv-juhas/u313/bin/python --compatibility off`
      🍹 Building a mixed python/rust project
      🔗 Found pyo3 bindings
      🐍 Found CPython 3.13 at /tmp/venv-juhas/u313/bin/python
      📡 Using build options features, bindings from pyproject.toml
         Compiling proc-macro2 v1.0.85
         Compiling unicode-ident v1.0.12
         Compiling libc v0.2.155
         Compiling autocfg v1.3.0
         Compiling once_cell v1.19.0
         Compiling cfg-if v1.0.0
         Compiling serde v1.0.203
         Compiling pin-project-lite v0.2.14
         Compiling parking_lot_core v0.9.10
         Compiling smallvec v1.13.2
         Compiling futures-core v0.3.31
         Compiling memchr v2.7.4
         Compiling thiserror v1.0.61
         Compiling bytes v1.7.2
         Compiling target-lexicon v0.12.14
         Compiling futures-sink v0.3.31
         Compiling itoa v1.0.11
         Compiling scopeguard v1.2.0
         Compiling libm v0.2.8
         Compiling futures-channel v0.3.31
         Compiling futures-task v0.3.31
         Compiling pin-utils v0.1.0
         Compiling futures-io v0.3.31
         Compiling equivalent v1.0.1
         Compiling version_check v0.9.4
         Compiling slab v0.4.9
         Compiling lock_api v0.4.12
         Compiling num-traits v0.2.19
         Compiling log v0.4.21
         Compiling hashbrown v0.14.5
         Compiling quote v1.0.36
         Compiling either v1.12.0
         Compiling getrandom v0.2.15
         Compiling socket2 v0.5.7
         Compiling syn v2.0.66
         Compiling jobserver v0.1.31
         Compiling mio v0.8.11
         Compiling parking_lot v0.12.3
         Compiling num_cpus v1.16.0
         Compiling indexmap v2.2.6
         Compiling fnv v1.0.7
         Compiling cc v1.0.99
         Compiling anyhow v1.0.86
         Compiling httparse v1.9.3
         Compiling serde_json v1.0.128
         Compiling tracing-core v0.1.32
         Compiling pyo3-build-config v0.20.3
         Compiling http v1.1.0
         Compiling rand_core v0.6.4
         Compiling ppv-lite86 v0.2.17
         Compiling itertools v0.13.0
         Compiling rustversion v1.0.17
         Compiling rustls v0.23.10
         Compiling percent-encoding v2.3.1
         Compiling rustls-pki-types v1.7.0
         Compiling rand_chacha v0.3.1
         Compiling spin v0.9.8
         Compiling untrusted v0.9.0
         Compiling rand v0.8.5
         Compiling tower-service v0.3.2
         Compiling syn v1.0.109
         Compiling http-body v1.0.1
         Compiling indexmap v1.9.3
         Compiling ryu v1.0.18
         Compiling memoffset v0.9.1
         Compiling atomic-waker v1.1.2
         Compiling stable_deref_trait v1.2.0
         Compiling portable-atomic v1.6.0
         Compiling try-lock v0.2.5
         Compiling heck v0.5.0
         Compiling ring v0.17.8
         Compiling httpdate v1.0.3
         Compiling base64 v0.22.1
         Compiling want v0.3.1
         Compiling crossbeam-utils v0.8.20
         Compiling subtle v2.5.0
         Compiling ident_case v1.0.1
         Compiling heck v0.4.1
         Compiling pyo3-ffi v0.20.3
         Compiling zeroize v1.8.1
         Compiling rustls-pemfile v2.1.2
         Compiling axum v0.7.5
         Compiling mime v0.3.17
         Compiling regex-syntax v0.8.4
         Compiling openssl-probe v0.1.5
         Compiling num-integer v0.1.46
         Compiling writeable v0.5.5
         Compiling litemap v0.7.3
      error: failed to run custom build command for `pyo3-ffi v0.20.3`

      Caused by:
        process didn't exit successfully: `/tmp/pip-install-3wq6fhwu/qcs-sdk-python_9f904a15fbf94e6c80754c0fb7750c61/target/release/build/pyo3-ffi-1d8eeba3daf809fd/build-script-build` (exit status: 1)
        --- stdout
        cargo:rerun-if-env-changed=PYO3_CROSS
        cargo:rerun-if-env-changed=PYO3_CROSS_LIB_DIR
        cargo:rerun-if-env-changed=PYO3_CROSS_PYTHON_VERSION
        cargo:rerun-if-env-changed=PYO3_CROSS_PYTHON_IMPLEMENTATION
        cargo:rerun-if-env-changed=PYO3_PRINT_CONFIG
        cargo:rerun-if-env-changed=PYO3_USE_ABI3_FORWARD_COMPATIBILITY

        --- stderr
        error: the configured Python interpreter version (3.13) is newer than PyO3's maximum supported version (3.12)
        = help: please check if an updated version of PyO3 is available. Current version: 0.20.3
        = help: set PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 to suppress this check and build anyway using the stable ABI
      warning: build failed, waiting for other jobs to finish...
      💥 maturin failed
        Caused by: Failed to build a native library through cargo
        Caused by: Cargo build finished with "exit status: 101": `env -u CARGO PYO3_ENVIRONMENT_SIGNATURE="cpython-3.13-64bit" PYO3_PYTHON="/tmp/venv-juhas/u313/bin/python" PYTHON_SYS_EXECUTABLE="/tmp/venv-juhas/u313/bin/python" "cargo" "rustc" "--features" "pyo3/extension-module" "--message-format" "json-render-diagnostics" "--manifest-path" "/tmp/pip-install-3wq6fhwu/qcs-sdk-python_9f904a15fbf94e6c80754c0fb7750c61/crates/python/Cargo.toml" "--release" "--lib" "--crate-type" "cdylib"`
      Error: command ['maturin', 'pep517', 'build-wheel', '-i', '/tmp/venv-juhas/u313/bin/python', '--compatibility', 'off'] returned non-zero exit status 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for qcs-sdk-python
  Building wheel for quil (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for quil (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [87 lines of output]
      Running `maturin pep517 build-wheel -i /tmp/venv-juhas/u313/bin/python --compatibility off`
      🍹 Building a mixed python/rust project
      🔗 Found pyo3 bindings
      🐍 Found CPython 3.13 at /tmp/venv-juhas/u313/bin/python
      📡 Using build options features, bindings from pyproject.toml
         Compiling autocfg v1.1.0
         Compiling proc-macro2 v1.0.78
         Compiling unicode-ident v1.0.11
         Compiling target-lexicon v0.12.11
         Compiling libm v0.2.7
         Compiling libc v0.2.147
         Compiling once_cell v1.18.0
         Compiling cfg-if v1.0.0
         Compiling heck v0.4.1
         Compiling memchr v2.5.0
         Compiling static_assertions v1.1.0
         Compiling paste v1.0.14
         Compiling rawpointer v0.2.1
         Compiling lexical-util v1.0.2
         Compiling hashbrown v0.14.3
         Compiling ppv-lite86 v0.2.17
         Compiling equivalent v1.0.1
         Compiling bytemuck v1.18.0
         Compiling syn v1.0.109
         Compiling parking_lot_core v0.9.8
         Compiling num-traits v0.2.19
         Compiling num-integer v0.1.45
         Compiling matrixmultiply v0.3.7
         Compiling lock_api v0.4.10
         Compiling memoffset v0.9.0
         Compiling num-rational v0.4.1
         Compiling safe_arch v0.7.1
         Compiling quote v1.0.35
         Compiling pyo3-build-config v0.20.3
         Compiling syn v2.0.48
         Compiling indexmap v2.2.6
         Compiling getrandom v0.2.10
         Compiling scopeguard v1.2.0
         Compiling smallvec v1.11.0
         Compiling portable-atomic v1.6.0
         Compiling rand_core v0.6.4
         Compiling typenum v1.17.0
         Compiling rustversion v1.0.14
         Compiling rand_chacha v0.3.1
         Compiling wide v0.7.16
         Compiling rand v0.8.5
         Compiling lexical-parse-integer v1.0.1
         Compiling lexical-write-integer v1.0.1
         Compiling num-complex v0.4.6
         Compiling lexical-parse-float v1.0.1
         Compiling lexical-write-float v1.0.1
         Compiling approx v0.5.1
         Compiling rand_distr v0.4.3
         Compiling parking_lot v0.12.1
         Compiling aho-corasick v1.0.2
         Compiling powerfmt v0.2.0
         Compiling inventory v0.3.15
         Compiling regex-syntax v0.7.4
         Compiling unindent v0.2.3
         Compiling pyo3-ffi v0.20.3
         Compiling pyo3 v0.20.3
         Compiling thiserror v1.0.56
         Compiling simba v0.6.0
         Compiling minimal-lexical v0.2.1
         Compiling serde v1.0.197
         Compiling indoc v2.0.4
      error: failed to run custom build command for `pyo3-ffi v0.20.3`

      Caused by:
        process didn't exit successfully: `/tmp/pip-install-3wq6fhwu/quil_6acaa5f42f3c4e21894c410533bfc9c5/target/release/build/pyo3-ffi-f1fec01e82876f56/build-script-build` (exit status: 1)
        --- stdout
        cargo:rerun-if-env-changed=PYO3_CROSS
        cargo:rerun-if-env-changed=PYO3_CROSS_LIB_DIR
        cargo:rerun-if-env-changed=PYO3_CROSS_PYTHON_VERSION
        cargo:rerun-if-env-changed=PYO3_CROSS_PYTHON_IMPLEMENTATION
        cargo:rerun-if-env-changed=PYO3_PRINT_CONFIG
        cargo:rerun-if-env-changed=PYO3_USE_ABI3_FORWARD_COMPATIBILITY

        --- stderr
        error: the configured Python interpreter version (3.13) is newer than PyO3's maximum supported version (3.12)
        = help: please check if an updated version of PyO3 is available. Current version: 0.20.3
        = help: set PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 to suppress this check and build anyway using the stable ABI
      warning: build failed, waiting for other jobs to finish...
      💥 maturin failed
        Caused by: Failed to build a native library through cargo
        Caused by: Cargo build finished with "exit status: 101": `env -u CARGO PYO3_ENVIRONMENT_SIGNATURE="cpython-3.13-64bit" PYO3_PYTHON="/tmp/venv-juhas/u313/bin/python" PYTHON_SYS_EXECUTABLE="/tmp/venv-juhas/u313/bin/python" "cargo" "rustc" "--features" "pyo3/extension-module" "--message-format" "json-render-diagnostics" "--manifest-path" "/tmp/pip-install-3wq6fhwu/quil_6acaa5f42f3c4e21894c410533bfc9c5/quil-py/Cargo.toml" "--release" "--lib" "--crate-type" "cdylib"`
      Error: command ['maturin', 'pep517', 'build-wheel', '-i', '/tmp/venv-juhas/u313/bin/python', '--compatibility', 'off'] returned non-zero exit status 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for quil
  Building wheel for qcs-api-client-common (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for qcs-api-client-common (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [113 lines of output]
      Running `maturin pep517 build-wheel -i /tmp/venv-juhas/u313/bin/python --compatibility off`
      warning: Patch `hyper-proxy v0.9.1 (https://github.com/rigetti/hyper-proxy#e08329b5)` was not used in the crate graph.
      Check that the patched package version and available features are compatible
      with the dependency requirements. If the patch has a different version from
      what is locked in the Cargo.lock file, run `cargo update` to use the new
      version. This may also occur with an optional dependency that is not enabled.
      🍹 Building a mixed python/rust project
      🔗 Found pyo3 bindings
      🐍 Found CPython 3.13 at /tmp/venv-juhas/u313/bin/python
      📡 Using build options features, bindings from pyproject.toml
      warning: Patch `hyper-proxy v0.9.1 (https://github.com/rigetti/hyper-proxy#e08329b5)` was not used in the crate graph.
      Check that the patched package version and available features are compatible
      with the dependency requirements. If the patch has a different version from
      what is locked in the Cargo.lock file, run `cargo update` to use the new
      version. This may also occur with an optional dependency that is not enabled.
         Compiling proc-macro2 v1.0.86
         Compiling unicode-ident v1.0.13
         Compiling libc v0.2.158
         Compiling autocfg v1.3.0
         Compiling cfg-if v1.0.0
         Compiling target-lexicon v0.12.16
         Compiling pin-project-lite v0.2.14
         Compiling once_cell v1.19.0
         Compiling itoa v1.0.11
         Compiling futures-core v0.3.30
         Compiling shlex v1.3.0
         Compiling bytes v1.7.1
         Compiling version_check v0.9.5
         Compiling serde v1.0.210
         Compiling memchr v2.7.4
         Compiling cc v1.1.19
         Compiling futures-sink v0.3.30
         Compiling futures-channel v0.3.30
         Compiling futures-task v0.3.30
         Compiling futures-io v0.3.30
         Compiling pin-utils v0.1.0
         Compiling equivalent v1.0.1
         Compiling hashbrown v0.14.5
         Compiling untrusted v0.9.0
         Compiling slab v0.4.9
         Compiling num-traits v0.2.19
         Compiling spin v0.9.8
         Compiling lock_api v0.4.12
         Compiling thiserror v1.0.63
         Compiling parking_lot_core v0.9.10
         Compiling fnv v1.0.7
         Compiling ident_case v1.0.1
         Compiling quote v1.0.37
         Compiling strsim v0.11.1
         Compiling pyo3-build-config v0.20.3
         Compiling http v0.2.12
         Compiling syn v2.0.77
         Compiling tracing-core v0.1.32
         Compiling getrandom v0.2.15
         Compiling mio v1.0.2
         Compiling socket2 v0.5.7
         Compiling indexmap v2.5.0
         Compiling memoffset v0.9.1
         Compiling proc-macro2-diagnostics v0.10.1
         Compiling scopeguard v1.2.0
         Compiling heck v0.4.1
         Compiling powerfmt v0.2.0
         Compiling tinyvec_macros v0.1.1
         Compiling httparse v1.9.4
         Compiling portable-atomic v1.7.0
         Compiling rustls v0.21.12
         Compiling time-core v0.1.2
         Compiling ring v0.17.8
         Compiling byteorder v1.5.0
         Compiling num-conv v0.1.0
         Compiling smallvec v1.13.2
         Compiling tinyvec v1.8.0
         Compiling time-macros v0.2.18
         Compiling deranged v0.3.11
         Compiling tracing v0.1.40
         Compiling pyo3-build-config v0.22.3
         Compiling log v0.4.22
         Compiling percent-encoding v2.3.1
         Compiling ryu v1.0.18
         Compiling try-lock v0.2.5
         Compiling base64 v0.21.7
         Compiling yansi v1.0.1
         Compiling serde_json v1.0.128
         Compiling want v0.3.1
         Compiling pyo3-ffi v0.20.3
         Compiling pyo3 v0.20.3
         Compiling unicode-normalization v0.1.23
         Compiling form_urlencoded v1.2.1
         Compiling parking_lot v0.12.3
         Compiling http-body v0.4.6
         Compiling num-integer v0.1.46
         Compiling num-complex v0.4.6
      error: failed to run custom build command for `pyo3-ffi v0.20.3`

      Caused by:
        process didn't exit successfully: `/tmp/pip-install-3wq6fhwu/qcs-api-client-common_abe52688c6ee43b899c654161c739e8f/target/release/build/pyo3-ffi-a2ccb49e51f99c62/build-script-build` (exit status: 1)
        --- stdout
        cargo:rerun-if-env-changed=PYO3_CROSS
        cargo:rerun-if-env-changed=PYO3_CROSS_LIB_DIR
        cargo:rerun-if-env-changed=PYO3_CROSS_PYTHON_VERSION
        cargo:rerun-if-env-changed=PYO3_CROSS_PYTHON_IMPLEMENTATION
        cargo:rerun-if-env-changed=PYO3_PRINT_CONFIG
        cargo:rerun-if-env-changed=PYO3_USE_ABI3_FORWARD_COMPATIBILITY

        --- stderr
        error: the configured Python interpreter version (3.13) is newer than PyO3's maximum supported version (3.12)
        = help: please check if an updated version of PyO3 is available. Current version: 0.20.3
        = help: set PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 to suppress this check and build anyway using the stable ABI
      warning: build failed, waiting for other jobs to finish...
      💥 maturin failed
        Caused by: Failed to build a native library through cargo
        Caused by: Cargo build finished with "exit status: 101": `env -u CARGO PYO3_ENVIRONMENT_SIGNATURE="cpython-3.13-64bit" PYO3_PYTHON="/tmp/venv-juhas/u313/bin/python" PYTHON_SYS_EXECUTABLE="/tmp/venv-juhas/u313/bin/python" "cargo" "rustc" "--features" "python" "--features" "pyo3/extension-module" "--message-format" "json-render-diagnostics" "--manifest-path" "/tmp/pip-install-3wq6fhwu/qcs-api-client-common_abe52688c6ee43b899c654161c739e8f/qcs-api-client-common/Cargo.toml" "--release" "--lib" "--crate-type" "cdylib"`
      Error: command ['maturin', 'pep517', 'build-wheel', '-i', '/tmp/venv-juhas/u313/bin/python', '--compatibility', 'off'] returned non-zero exit status 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for qcs-api-client-common
Failed to build qcs-sdk-python quil qcs-api-client-common
ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (qcs-sdk-python, quil, qcs-api-client-common)

When checking the qcs-api-client-common files on PyPI there seem to be compiled distribution wheels for Python 3.12, but none for Python 3.13.

Proposed Solution

Could you please provide Python 3.13 - compatible binary wheels for qcs-api-client-common and any other compiled pyquil dependencies under your control?

Context: We would like to enable Cirq installation for Python 3.13, however this is currently blocked on installation of pyquil for cirq-rigetti.

Additional References

quantumlib/Cirq#6932

@pavoljuhas pavoljuhas added the enhancement ✨ A request for a new feature. label Jan 24, 2025
@jselig-rigetti
Copy link
Contributor

Hello,

I'll look to make those release this week, thank you!

@jselig-rigetti jselig-rigetti self-assigned this Jan 27, 2025
@pavoljuhas
Copy link
Author

That would be great, thank you!

@jselig-rigetti
Copy link
Contributor

@pavoljuhas my apologies, this will take longer than I'd originally anticipated, due to a downstream dependency needing an update: rigetti/rigetti-pyo3#57

Once that issue is resolved, it should be a relatively straightforward to make the other updates necessary - we'll keep you updated on the status there.

@jselig-rigetti
Copy link
Contributor

@pavoljuhas apologies, we're not going to be able to dedicate the resources to fix rigetti/rigetti-pyo3#57 immediately - we have prioritized it for release by end of February.

@pavoljuhas
Copy link
Author

Thank you for the update!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement ✨ A request for a new feature.
Projects
None yet
Development

No branches or pull requests

2 participants