I am trying to install the 7.1 on linux computer. This is our institution computer so I do not think I have the administrator privilege. Will that be the cause of an issue?
> sct_check_dependencies
--
Spinal Cord Toolbox (6.1)
sct_check_dependencies
--
SYSTEM INFORMATION
------------------
SCT info:
- version: 6.1
- path: /bme/home/liuj19/sct_6.1
OS: linux (Linux-3.10.0-1062.12.1.el7.x86_64-x86_64-with-glibc2.17)
CPU cores: Available: 48, Used by ITK functions: 48
RAM: Total: 64041MB, Used: 11462MB, Available: 51476MB
OPTIONAL DEPENDENCIES
---------------------
Check FSLeyes version...............................[OK] (1.5.0)
MANDATORY DEPENDENCIES
----------------------
Check Python executable.............................[OK]
Using bundled python 3.9.18 (main, Sep 11 2023, 13:41:44)
[GCC 11.2.0] at /bme/home/liuj19/sct_6.1/python/envs/venv_sct/bin/python
Check if data are installed.........................[OK]
Check if dipy is installed..........................[OK] (1.5.0)
Check if ivadomed is installed......................[OK] (2.9.8)
Check if matplotlib is installed....................[OK] (3.8.1)
Check if nibabel is installed.......................[OK] (3.2.2)
Check if nilearn is installed.......................[OK] (0.10.2)
Check if numpy is installed.........................[OK] (1.23.5)
Check if onnxruntime is installed...................[OK] (1.16.1)
Check if pandas is installed........................[OK] (1.4.4)
Check if portalocker is installed...................[OK] (2.8.2)
Check if psutil is installed........................[OK] (5.9.6)
Check if pyqt5 (5.12.3) is installed................[OK] (5.12.3)
Check if pytest is installed........................[OK] (7.4.3)
Check if pytest-cov is installed....................[OK] (4.1.0)
Check if requests is installed......................[OK] (2.31.0)
Check if requirements-parser is installed...........[OK]
Check if scipy is installed.........................[OK] (1.11.3)
Check if scikit-image is installed..................[OK] (0.22.0)
Check if scikit-learn is installed..................[OK] (1.3.2)
Check if xlwt is installed..........................[OK] (1.3.0)
Check if tqdm is installed..........................[OK] (4.66.1)
Check if transforms3d is installed..................[OK] (0.4.1)
Check if urllib3 is installed.......................[OK] (2.0.7)
Check if pytest_console_scripts is installed........[OK]
Check if pyyaml is installed........................[OK] (6.0.1)
Check if voxelmorph is installed....................[OK] (0.2)
Check if wquantiles is installed....................[OK] (0.4)
Check if xlsxwriter is installed....................[OK] (3.1.9)
Check if spinalcordtoolbox is installed.............[OK]
Check ANTs compatibility with OS ...................[OK]
Check PropSeg compatibility with OS ................[OK]
Check if figure can be opened with PyQt.............[OK]
Check if figure can be opened with matplotlib.......[OK] (Using GUI backend: 'QtAgg')
Thank you for your error report. I would be happy to help debug this issue.
ERROR: Could not find a version that satisfies the requirement onnxruntime==1.21.1 (from versions: 1.12.0, 1.12.1, 1.13.1, 1.14.0, 1.14.1, 1.15.0, 1.15.1, 1.16.0, 1.16.1, 1.16.2, 1.16.3)
The error message inside install_sct_log.txt mentions that only versions of onnxruntime from 1.12.0 to 1.16.3 are available. If I check the version of onnxruntime that comes immediately after, then compare the files (1.16.3 vs. 1.17.0), we can see that 1.16.3 was the last version to support:
Based on the output of your sct_check_dependencies command, we can see that your OS is an older version of Linux (Linux-3.10.0-1062.12.1.el7.x86_64-x86_64-with-glibc2.17). And, we can see that your OS uses the older version of glibc (2.17). This basically means that the machine’s operating system is very out of date.
Based on this glibc Timeline, we can see that 2.17 was released on 2012-12-25. Meaning, your workstation is potentially as old as 13 years old. (For reference, the new minimum requirement (2.27) was released on 2018-02-01.)
If possible, I would recommend using a newer, updated operating system for SCT. If this is not possible, however, please let us know.
Thanks for the reply. This is interesting because the workstation is only 5 years old. Maybe they installed a very old linux system?
I have to check with IT to rebuild/acquire a new linux system. But if not possible, is there another way to work around the error?
Btw, you could see the sct_check_dependencies was for sct 6.1 (not 7.1) because I attempted to install it a year ago. If I remember it correctly, that was not very successful either. Should I use an even older version of spinal cord toolbox then?
Ah yes, interesting! I checked SCT v6.1, and it seems that it does not suffer from this exact issue (it uses onnxruntime==1.16.1, which should be compatible with your system). Additionally, the sct_check_dependencies call that was pasted above shows all [OK] values. So, I think you should be fine to continue to use 6.1. (If you encounter a different issue, feel free to open a new forum post and I can help debug.)
It looks like the onnxruntime issue only arose in SCT v6.2, when we upgraded to onnxruntime==1.17.0.
There might be. Note: This is highly experimental and may take a few tries, and may not be the best long-term/permanent solution.
But, here are a set of steps you can try:
Go the 7.1 release, and instead of downloading the .sh installer script, download the “Source code (.zip)” instead.
Extract the zip to the location of your choice (e.g. your home directory)
Open the folder, then open the file requirements-freeze.txt.
This file contains a set of frozen requirements that are guaranteed to work together and reproduce the results of all 7.1 installations. Usually, these should not be modified. But, in this case, you could try editing this file to downgrade onnxruntime to a lower version (I would recommend 1.16.3, as it is the latest supported version for your operating system.)
You can then re-run the installer, this time using the ./install_sct script that is inside the folder.
If it fails again (e.g. due to a different incompatible package), you can try editing the version of that package, and repeat.
Because of how precarious this method is (and because it may not lead to reproducible results), I think that I would recommend either sticking with v6.1 or waiting for IT to respond. But, it is still an option if you want to test out the new features strictly for exploration purposes.
Thanks very much Joshua. I tried the experimental method you outlined for me (Thanks very much). It was a successful installation but I think I am gonna stick to 6.1 for now, just to be on the safe side of data processing.
I think that’s a good idea. Still, I’m glad the installation was successful at least! And, I hope that you are able to update your workstation if possible.