Skip to content

Conversation

@guptapratykshh
Copy link
Contributor

Description
Installation fails on Python 3.12 and above because the pinned version of TensorFlow (2.15.0) does not provide pre-built wheels for Python 3.12. Additionally, scikit-image (0.19.1) fails to build because it depends on distutils, which was removed in Python 3.12.

Updated project dependencies to support Python 3.12 and above, has been done locally:

  • TensorFlow: Bumped from 2.15.0 to >=2.16.1 to access Python 3.12 compatible wheels.
  • Scikit-Image: Bumped from 0.19.1 to >=0.22.0 to fix ModuleNotFoundError: No module named 'distutils'.
  • Protobuf: Removed the <3.22 constraint to allow newer versions needed by the updated TensorFlow.
  • Pandas: Relaxed the strict pin (==1.5.3 to >=1.5.3) to resolve dependency conflicts.

This PR fixes #3519

Notes for Reviewers

Signed commits

  • Yes, I signed my commits.

Copy link
Contributor

@MoralCode MoralCode left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall this looks great! Id like it to be tested manually as well by some of the other maintainers but This is looking like a great PR! excited that all the automatic tests are passing

I'll try and run the unit tests on it sometime soon too

"pandas>=1.5.3",
"partd>=0.3.10",
"protobuf<3.22",
"protobuf",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

whats the current latest version of this? is this going to cause us to get put on a new major version?

Id also be curious why we were maxing out at 3.22 before.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The latest protobuf version is 6.33.2. However, removing the <3.22 cap allows resolver to choose version 4.25.8, which is compatible with tensorflow 2.17.1. The old cap was probably set because tensorflow 2.15.0 used protobuf 3.20.3. The <3.22 constraint aimed to avoid breaking changes from protobuf 4.x. But newer tensorflow 2.17.1 requires protobuf 4.x+.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh wow, thats a lot of details on the version history

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suspect this may need to be done together with and/or after #3336 - a lot of our dependencies are probably transitive, like this protobuf one

@MoralCode MoralCode added this to the v0.93.0 milestone Jan 10, 2026
@guptapratykshh guptapratykshh force-pushed the fix/issue-3519-tensorflow-update branch from 2006eb8 to c0e3f02 Compare January 12, 2026 04:37
@guptapratykshh guptapratykshh force-pushed the fix/issue-3519-tensorflow-update branch from c0e3f02 to 9fb9cba Compare January 12, 2026 04:38
@MoralCode
Copy link
Contributor

in this PR, can you also re-enable the 3.12 unit tests so we can make sure they are passing too?

@guptapratykshh guptapratykshh force-pushed the fix/issue-3519-tensorflow-update branch from 7e92272 to 6397660 Compare January 16, 2026 18:29
@guptapratykshh guptapratykshh force-pushed the fix/issue-3519-tensorflow-update branch from 6397660 to 8435c3e Compare January 16, 2026 19:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Dependencies wont install on Python 3.12+ due to tensorflow version

2 participants