io
io copied to clipboard
Allow python 3.10
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 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).
Okay, thanks! Should I keep this issue open?
@AaronDewes Let's keep the issue open until 3.10 support is added.
tensorflow 2.8.0 and tensorflow-io 0.24.0 added 3.10 wheels on x86-64 architecture
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 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).
[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.
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.