Skip to content

can't build latest tensorflow io from source with python 3.12 #2156

Description

@cxh1020

Hi team,

It looks like TensorFlow I/O may not yet fully support Python 3.12. When I try to build the latest tf io from source with Python 3.12, I encounter the following error:

bazel-out/k8-opt/bin/external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/cygrpc.cpp:139984:55: error: 'PyLongObject' {aka 'struct _longobject'} has no member named 'ob_digit'
139984 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
       |                                                       ^~~~~~~~
bazel-out/k8-opt/bin/external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/cygrpc.cpp: In function 'grpc_call_error __Pyx_PyInt_As_grpc_call_error(PyObject*)':
bazel-out/k8-opt/bin/external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/cygrpc.cpp:140163:55: error: 'PyLongObject' {aka 'struct _longobject'} has no member named 'ob_digit'
140163 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
       |                                                       ^~~~~~~~
bazel-out/k8-opt/bin/external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/cygrpc.cpp:140218:55: error: 'PyLongObject' {aka 'struct _longobject'} has no member named 'ob_digit'
140218 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
       |                                                       ^~~~~~~~
bazel-out/k8-opt/bin/external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/cygrpc.cpp: In function 'size_t __Pyx_PyInt_As_size_t(PyObject*)':
bazel-out/k8-opt/bin/external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/cygrpc.cpp:140359:55: error: 'PyLongObject' {aka 'struct _longobject'} has no member named 'ob_digit'
140359 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
       |                                                       ^~~~~~~~
bazel-out/k8-opt/bin/external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/cygrpc.cpp:140414:55: error: 'PyLongObject' {aka 'struct _longobject'} has no member named 'ob_digit'
140414 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
       |                                                       ^~~~~~~~
bazel-out/k8-opt/bin/external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/cygrpc.cpp: In function 'unsigned int __Pyx_PyInt_As_unsigned_int(PyObject*)':
bazel-out/k8-opt/bin/external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/cygrpc.cpp:140593:55: error: 'PyLongObject' {aka 'struct _longobject'} has no member named 'ob_digit'
140593 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
       |                                                       ^~~~~~~~
bazel-out/k8-opt/bin/external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/cygrpc.cpp:140648:55: error: 'PyLongObject' {aka 'struct _longobject'} has no member named 'ob_digit'
140648 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
       |                                                       ^~~~~~~~
bazel-out/k8-opt/bin/external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/cygrpc.cpp: In function 'Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*)':
bazel-out/k8-opt/bin/external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/cygrpc.cpp:141211:47: error: 'PyLongObject' {aka 'struct _longobject'} has no member named 'ob_digit'
141211 |     const digit* digits = ((PyLongObject*)b)->ob_digit;
       |                                               ^~~~~~~~
SUBCOMMAND: # @proj//:proj [action 'Compiling src/iso19111/operation/coordinateoperationfactory.cpp', configuration: 1eb5270c5bfcee71256c3f890d09cbc8dd9f0cfb545aac486e7f933abc9eb85a, execution platform: @local_execution_config_platform//:platform]

To reproduce:
run build.Dockerfile with python 3.12, tensorflow 2.16.1.

Could you please help confirm if Python 3.12 is supported, or suggest a workaround?

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions