Open tabedzki opened 2 months ago
After making the original post I saw that there are things that changed in tensorflow that necessitated the limit and that there is work being done to make 3.0 a thing. However, the limit of packaging still affects 3.0.
The upper limit for scipy<=1.10
is limiting the installation which version of Python one can use for the latest version of DeepLabCut 3.0.0rc4 since scipy<=1.10
does not support the latest version of Python due to the restriction that scipy places on numpy which restricts the python version.
Is there a reason for this? Can the package limit be removed for scipy?
Hi @tabedzki - we pinned the scipy
version as release 1.11 made some tests fail. I don't think I can loosen the pin without rewriting some code to ensure everything runs smoothly. I'll check it out anyways and see what I can do.
Currently, we support python 3.10 and 3.11 with DeepLabCut 3.0.
Thank n-poulsen for getting back to me on this.
Do you remember how big of an incompatibility it was to use version 1.12? As Python 3.13 comes out this month, I'd be happy to spend some time looking into addressing the scipy limit if you have any high level remarks about where the issue was.
It should be a pretty low-hanging fruit. I went back to the pull request pinning scipy
(#2290), and it seems that the underlying issue has already been solved in #2396. So we should be able to un-pin scipy
and work with more recent package versions.
I tested locally with python==3.12
and scipy==1.14.1
and all tests pass. Note that I also had to unpin tables==3.8.0
as it also wasn't available for python==3.12
. Some of the tests need to be ignored, as you cannot install a tensorflow
version that is compatible with both python==3.12
and deeplabcut
. If you want to try things out locally and check that everything works for you that would be awesome
Thanks for checking that they they addressed the issues with respect to scipy
so that we can remove the dependency limit.
As for pytables, we could make 3.8 the lower bound for Tables so that Python 3.12 can install the newer versions but the older one can still be used for older version of Python. Thoughts?
Is there an existing issue for this?
Bug description
I am trying to install the latest version of
deeplabcut==2.3.10
on Python 3.12 which has a limit ontensorflow>=2.0,<=2.10
. This upper limit on tensorflow causes the dependency solver to go back todeeplabcut==2.2.3
even in a new virtual environment to comply with upper limit.The ask
What is the reason for these upper limits packaging upper limits? Can they be safely removed or is there a functionality that deeplabcut depends on that broke after 2.10?
Related
Additionally, there are different package requirements between
requirements.txt
andsetup.py
. Can those be sync'ed or can be one the resource of truth and other one removed? Can those upper limits also be removed if they are not known to break anything?requirements.txt
Setup.py
Operating System
Linux
DeepLabCut version
trying to install latest
Steps To Reproduce
Install python 3.12
Relevant log output
Code of Conduct