io icon indicating copy to clipboard operation
io copied to clipboard

Allow python 3.10

Open AaronDewes opened this issue 2 years ago • 8 comments

I'm not sure if this is an actual incompatibility or just not marked as compatible, but tensorflow-io-gcs-filesystem is currently not supported on Python 3.10 (When installed with poetry at least).

AaronDewes avatar Nov 10 '21 12:11 AaronDewes

@AaronDewes tensorflow-io-gcs-filesystem is supposed to be compatible with tensorflow. As tensorflow does not support 3.10 yet, we don't have a release for 3.10 as well. We will add 3.10 package once tensorflow 3.10 is added (likely in TF 2.8).

yongtang avatar Nov 11 '21 13:11 yongtang

Okay, thanks! Should I keep this issue open?

AaronDewes avatar Nov 11 '21 14:11 AaronDewes

@AaronDewes Let's keep the issue open until 3.10 support is added.

yongtang avatar Nov 11 '21 14:11 yongtang

tensorflow 2.8.0 and tensorflow-io 0.24.0 added 3.10 wheels on x86-64 architecture

hrw avatar Feb 22 '22 12:02 hrw

I have a question about building on aarch64. TF 2.8.0 can be built for Python 3.10 but to install it wants tensorflow_io_gcs_filesystem wheel.

Which needs tensorflow to be built. Circular dependency ;(

Hint? Tensorflow 2.7.x is not an option as it does not build with 3.10 Python.

hrw avatar Feb 22 '22 12:02 hrw

@hrw tensorflow-io package consists of python code, and .so lib complied from C++. Python code remains the same across different versions. The .so lib complied from C++ depends on tensorflow. However, the complied lib itself works across different python version.

So the same .so built from python 3.8 + tensorflow can be used to package python 3.10 pip wheel. In fact this is also the method we use to release all tensorflow-io packages (we only build .so lib once through python 3.8).

yongtang avatar Feb 22 '22 14:02 yongtang

[root@jagular io-0.24.0]# ls dist/ -1
tensorflow_io-0.24.0-cp310-cp310-linux_aarch64.whl
tensorflow_io-0.24.0-cp36-cp36m-linux_aarch64.whl
tensorflow_io-0.24.0-cp37-cp37m-linux_aarch64.whl
tensorflow_io-0.24.0-cp38-cp38-linux_aarch64.whl
tensorflow_io-0.24.0-cp39-cp39-linux_aarch64.whl
tensorflow_io_gcs_filesystem-0.24.0-cp310-cp310-linux_aarch64.whl
tensorflow_io_gcs_filesystem-0.24.0-cp36-cp36m-linux_aarch64.whl
tensorflow_io_gcs_filesystem-0.24.0-cp37-cp37m-linux_aarch64.whl
tensorflow_io_gcs_filesystem-0.24.0-cp38-cp38-linux_aarch64.whl
tensorflow_io_gcs_filesystem-0.24.0-cp39-cp39-linux_aarch64.whl
[root@jagular io-0.24.0]#

Thanks. Need to change build scripts now as this was done by hand.

hrw avatar Feb 22 '22 17:02 hrw

I’d argue you should remove the upper limit on your allowed python versions as this code will work on new versions of python without modification (as demonstrated by #1592). If Tensorflow has restrictions on what specific python versions can be used then those limits should be part of that package, not this one.

Having the limits on this package just means that support for a new python version will get stuck waiting for this package to be updated as in #1591 while other packages in the organisation just have a minimum python version (e.g. https://github.com/tensorflow/datasets/blob/065f26f2f6974b76c2a6a0b91895a6b208e57144/setup.py#L209) allowing them to work without modification.

jamesrobson-secondmind avatar Apr 19 '22 10:04 jamesrobson-secondmind