-
-
Notifications
You must be signed in to change notification settings - Fork 102
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support installing SCT natively on Windows #3682
Comments
1. Bare-minimum pip install (no PyPI, binaries, PATH modifications, etc.)The first thing I wanted to try was simply installing SCT and its dependencies on Windows as-is to see what sort of snags we run into:
Log of the above steps(venv_sct) C:\Users\Joshua\repos\spinalcordtoolbox\venv_sct\Scripts> python -m pip install --upgrade pip setuptools wheel
Collecting pip
Using cached pip-22.0.3-py3-none-any.whl (2.1 MB)
Collecting setuptools
Using cached setuptools-60.8.2-py3-none-any.whl (1.1 MB)
Collecting wheel
Using cached wheel-0.37.1-py2.py3-none-any.whl (35 kB)
Installing collected packages: pip, setuptools, wheel
Attempting uninstall: pip
Found existing installation: pip 20.1.1
Uninstalling pip-20.1.1:
Successfully uninstalled pip-20.1.1
Attempting uninstall: setuptools
Found existing installation: setuptools 47.1.0
Uninstalling setuptools-47.1.0:
Successfully uninstalled setuptools-47.1.0
Successfully installed pip-22.0.3 setuptools-60.8.2 wheel-0.37.1
(venv_sct) C:\Users\Joshua\repos\spinalcordtoolbox\venv_sct\Scripts> cd ../..
(venv_sct) C:\Users\Joshua\repos\spinalcordtoolbox> pip install -r requirements.txt
Looking in links: https://download.pytorch.org/whl/cpu/torch_stable.html
Ignoring torch: markers 'sys_platform == "darwin"' don't match your environment
Ignoring torchvision: markers 'sys_platform == "darwin"' don't match your environment
warning: missing-index-doctype
× The package index page being used does not have a proper HTML doctype declaration.
╰─> Problematic URL: https://download.pytorch.org/whl/cpu/torch_stable.html
note: This is an issue with the page at the URL mentioned above.
hint: You might need to reach out to the owner of that package index, to get this fixed. See https://github.com/pypa/pip/issues/10825 for context.
Collecting colored
Using cached colored-1.4.3.tar.gz (29 kB)
Preparing metadata (setup.py) ... done
Collecting dipy
Using cached dipy-1.4.1-cp37-none-win_amd64.whl (7.5 MB)
Collecting h5py~=2.10.0
Using cached h5py-2.10.0-cp37-cp37m-win_amd64.whl (2.5 MB)
Collecting Keras==2.3.1
Using cached Keras-2.3.1-py2.py3-none-any.whl (377 kB)
Collecting ivadomed
Using cached ivadomed-2.9.3-py3-none-any.whl (221 kB)
Collecting matplotlib
Using cached matplotlib-3.5.1-cp37-cp37m-win_amd64.whl (7.2 MB)
Collecting nibabel
Using cached nibabel-3.2.2-py3-none-any.whl (3.3 MB)
Collecting numpy
Using cached numpy-1.21.5-cp37-cp37m-win_amd64.whl (14.0 MB)
Collecting onnxruntime>=1.7.0
Using cached onnxruntime-1.10.0-cp37-cp37m-win_amd64.whl (5.2 MB)
Collecting pandas
Using cached pandas-1.3.5-cp37-cp37m-win_amd64.whl (10.0 MB)
Collecting psutil
Using cached psutil-5.9.0-cp37-cp37m-win_amd64.whl (246 kB)
Collecting pyqt5==5.11.3
Using cached PyQt5-5.11.3-5.11.2-cp35.cp36.cp37.cp38-none-win_amd64.whl (93.4 MB)
Collecting pytest
Using cached pytest-7.0.0-py3-none-any.whl (296 kB)
Collecting pytest-cov
Using cached pytest_cov-3.0.0-py3-none-any.whl (20 kB)
Collecting raven
Using cached raven-6.10.0-py2.py3-none-any.whl (284 kB)
Collecting requests
Using cached requests-2.27.1-py2.py3-none-any.whl (63 kB)
Collecting requirements-parser
Using cached requirements_parser-0.5.0-py3-none-any.whl (18 kB)
Collecting scipy
Using cached scipy-1.7.3-cp37-cp37m-win_amd64.whl (34.1 MB)
Collecting scikit-image
Using cached scikit_image-0.19.1-cp37-cp37m-win_amd64.whl (12.4 MB)
Collecting scikit-learn
Using cached scikit_learn-1.0.2-cp37-cp37m-win_amd64.whl (7.1 MB)
Collecting tensorflow~=1.15.0
Using cached tensorflow-1.15.5-cp37-cp37m-win_amd64.whl (55.3 MB)
Collecting torch==1.5.0+cpu
Using cached https://download.pytorch.org/whl/cpu/torch-1.5.0%2Bcpu-cp37-cp37m-win_amd64.whl (109.2 MB)
Collecting torchvision==0.6.0+cpu
Using cached https://download.pytorch.org/whl/cpu/torchvision-0.6.0%2Bcpu-cp37-cp37m-win_amd64.whl (456 kB)
Collecting xlwt
Using cached xlwt-1.3.0-py2.py3-none-any.whl (99 kB)
Collecting tqdm
Using cached tqdm-4.62.3-py2.py3-none-any.whl (76 kB)
Collecting transforms3d
Using cached transforms3d-0.3.1.tar.gz (62 kB)
Preparing metadata (setup.py) ... done
Collecting urllib3[secure]
Using cached urllib3-1.26.8-py2.py3-none-any.whl (138 kB)
Collecting pytest_console_scripts
Using cached pytest_console_scripts-1.2.2-py3-none-any.whl
Collecting wquantiles
Using cached wquantiles-0.6-py3-none-any.whl (3.3 kB)
Collecting six>=1.9.0
Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting keras-applications>=1.0.6
Using cached Keras_Applications-1.0.8-py3-none-any.whl (50 kB)
Collecting keras-preprocessing>=1.0.5
Using cached Keras_Preprocessing-1.1.2-py2.py3-none-any.whl (42 kB)
Collecting pyyaml
Using cached PyYAML-6.0-cp37-cp37m-win_amd64.whl (153 kB)
Collecting PyQt5_sip<4.20,>=4.19.11
Using cached PyQt5_sip-4.19.19-cp37-none-win_amd64.whl (52 kB)
Collecting future
Using cached future-0.18.2.tar.gz (829 kB)
Preparing metadata (setup.py) ... done
Collecting pillow>=4.1.1
Using cached Pillow-9.0.1-cp37-cp37m-win_amd64.whl (3.2 MB)
Collecting torchio>=0.18.68
Using cached torchio-0.18.73-py2.py3-none-any.whl (164 kB)
Collecting pybids>=0.12.4
Using cached pybids-0.14.0-py3-none-any.whl (3.2 MB)
Collecting tensorboard>=1.15.0
Using cached tensorboard-2.8.0-py3-none-any.whl (5.8 MB)
Collecting seaborn~=0.11
Using cached seaborn-0.11.2-py3-none-any.whl (292 kB)
Collecting joblib~=1.0
Using cached joblib-1.1.0-py2.py3-none-any.whl (306 kB)
Collecting pyparsing<3,>=2.0.2
Using cached pyparsing-2.4.7-py2.py3-none-any.whl (67 kB)
Collecting onnxruntime>=1.7.0
Using cached onnxruntime-1.7.0-cp37-cp37m-win_amd64.whl (4.4 MB)
Collecting csv-diff>=1.0
Using cached csv_diff-1.1-py3-none-any.whl (12 kB)
Collecting loguru~=0.5
Using cached loguru-0.6.0-py3-none-any.whl (58 kB)
Collecting protobuf
Using cached protobuf-3.19.4-cp37-cp37m-win_amd64.whl (896 kB)
Collecting kiwisolver>=1.0.1
Using cached kiwisolver-1.3.2-cp37-cp37m-win_amd64.whl (51 kB)
Collecting fonttools>=4.22.0
Using cached fonttools-4.29.1-py3-none-any.whl (895 kB)
Collecting packaging>=20.0
Using cached packaging-21.3-py3-none-any.whl (40 kB)
Collecting cycler>=0.10
Using cached cycler-0.11.0-py3-none-any.whl (6.4 kB)
Collecting python-dateutil>=2.7
Using cached python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
Requirement already satisfied: setuptools in c:\users\joshua\repos\spinalcordtoolbox\venv_sct\lib\site-packages (from nibabel->-r requirements.txt (line 9)) (60.8.2)
Collecting pytz>=2017.3
Using cached pytz-2021.3-py2.py3-none-any.whl (503 kB)
Collecting pluggy<2.0,>=0.12
Using cached pluggy-1.0.0-py2.py3-none-any.whl (13 kB)
Collecting tomli>=1.0.0
Using cached tomli-2.0.1-py3-none-any.whl (12 kB)
Collecting iniconfig
Using cached iniconfig-1.1.1-py2.py3-none-any.whl (5.0 kB)
Collecting colorama
Using cached colorama-0.4.4-py2.py3-none-any.whl (16 kB)
Collecting py>=1.8.2
Using cached py-1.11.0-py2.py3-none-any.whl (98 kB)
Collecting attrs>=19.2.0
Using cached attrs-21.4.0-py2.py3-none-any.whl (60 kB)
Collecting importlib-metadata>=0.12
Using cached importlib_metadata-4.10.1-py3-none-any.whl (17 kB)
Collecting atomicwrites>=1.0
Using cached atomicwrites-1.4.0-py2.py3-none-any.whl (6.8 kB)
Collecting coverage[toml]>=5.2.1
Using cached coverage-6.3.1-cp37-cp37m-win_amd64.whl (186 kB)
Collecting certifi>=2017.4.17
Using cached certifi-2021.10.8-py2.py3-none-any.whl (149 kB)
Collecting charset-normalizer~=2.0.0
Using cached charset_normalizer-2.0.11-py3-none-any.whl (39 kB)
Collecting idna<4,>=2.5
Using cached idna-3.3-py3-none-any.whl (61 kB)
Collecting types-setuptools>=57.0.0
Using cached types_setuptools-57.4.9-py3-none-any.whl (27 kB)
Collecting PyWavelets>=1.1.1
Using cached PyWavelets-1.2.0-cp37-cp37m-win_amd64.whl (4.2 MB)
Collecting imageio>=2.4.1
Using cached imageio-2.15.0-py3-none-any.whl (3.3 MB)
Collecting tifffile>=2019.7.26
Using cached tifffile-2021.11.2-py3-none-any.whl (178 kB)
Collecting networkx>=2.2
Using cached networkx-2.6.3-py3-none-any.whl (1.9 MB)
Collecting threadpoolctl>=2.0.0
Using cached threadpoolctl-3.1.0-py3-none-any.whl (14 kB)
Collecting google-pasta>=0.1.6
Using cached google_pasta-0.2.0-py3-none-any.whl (57 kB)
Collecting termcolor>=1.1.0
Using cached termcolor-1.1.0.tar.gz (3.9 kB)
Preparing metadata (setup.py) ... done
Requirement already satisfied: wheel>=0.26 in c:\users\joshua\repos\spinalcordtoolbox\venv_sct\lib\site-packages (from tensorflow~=1.15.0->-r requirements.txt (line 25)) (0.37.1)
Collecting tensorflow-estimator==1.15.1
Using cached tensorflow_estimator-1.15.1-py2.py3-none-any.whl (503 kB)
Collecting grpcio>=1.8.6
Using cached grpcio-1.43.0-cp37-cp37m-win_amd64.whl (3.3 MB)
Collecting gast==0.2.2
Using cached gast-0.2.2.tar.gz (10 kB)
Preparing metadata (setup.py) ... done
Collecting wrapt>=1.11.1
Using cached wrapt-1.13.3-cp37-cp37m-win_amd64.whl (34 kB)
Collecting absl-py>=0.7.0
Using cached absl_py-1.0.0-py3-none-any.whl (126 kB)
Collecting opt-einsum>=2.3.2
Using cached opt_einsum-3.3.0-py3-none-any.whl (65 kB)
Collecting numpy
Using cached numpy-1.18.5-cp37-cp37m-win_amd64.whl (12.7 MB)
Collecting astor>=0.6.0
Using cached astor-0.8.1-py2.py3-none-any.whl (27 kB)
Collecting tensorboard>=1.15.0
Using cached tensorboard-1.15.0-py3-none-any.whl (3.8 MB)
Collecting cryptography>=1.3.4
Using cached cryptography-36.0.1-cp36-abi3-win_amd64.whl (2.2 MB)
Collecting pyOpenSSL>=0.14
Using cached pyOpenSSL-22.0.0-py2.py3-none-any.whl (55 kB)
Collecting mock>=2.0.0
Using cached mock-4.0.3-py3-none-any.whl (28 kB)
Collecting cffi>=1.12
Using cached cffi-1.15.0-cp37-cp37m-win_amd64.whl (179 kB)
Collecting click
Using cached click-8.0.3-py3-none-any.whl (97 kB)
Collecting dictdiffer
Using cached dictdiffer-0.9.0-py2.py3-none-any.whl (16 kB)
Collecting typing-extensions>=3.6.4
Using cached typing_extensions-4.0.1-py3-none-any.whl (22 kB)
Collecting zipp>=0.5
Using cached zipp-3.7.0-py3-none-any.whl (5.3 kB)
Collecting win32-setctime>=1.0.0
Using cached win32_setctime-1.1.0-py3-none-any.whl (3.6 kB)
Collecting bids-validator
Using cached bids_validator-1.8.9-py2.py3-none-any.whl (20 kB)
Collecting sqlalchemy<1.4.0.dev0
Using cached SQLAlchemy-1.3.24-cp37-cp37m-win_amd64.whl (1.2 MB)
Collecting formulaic~=0.2.4
Using cached formulaic-0.2.4-py3-none-any.whl (55 kB)
Collecting num2words
Using cached num2words-0.5.10-py3-none-any.whl (101 kB)
Collecting werkzeug>=0.11.15
Using cached Werkzeug-2.0.3-py3-none-any.whl (289 kB)
Collecting markdown>=2.6.8
Using cached Markdown-3.3.6-py3-none-any.whl (97 kB)
Collecting SimpleITK!=2.0.*
Using cached SimpleITK-2.1.1-cp37-cp37m-win_amd64.whl (26.2 MB)
Collecting Deprecated
Using cached Deprecated-1.2.13-py2.py3-none-any.whl (9.6 kB)
Collecting humanize
Using cached humanize-3.14.0-py3-none-any.whl (98 kB)
Collecting pycparser
Using cached pycparser-2.21-py2.py3-none-any.whl (118 kB)
Collecting interface-meta>=1.2
Using cached interface_meta-1.2.4-py2.py3-none-any.whl (14 kB)
Collecting docopt>=0.6.2
Using cached docopt-0.6.2.tar.gz (25 kB)
Preparing metadata (setup.py) ... done
Building wheels for collected packages: colored, gast, transforms3d, termcolor, future, docopt
Building wheel for colored (setup.py) ... done
Created wheel for colored: filename=colored-1.4.3-py3-none-any.whl size=14342 sha256=1ba886a043458c95b9102075f40273a610a418c37e486a987c4645fcfe7c05ec
Stored in directory: c:\users\joshua\appdata\local\pip\cache\wheels\4a\f6\00\835e81851bc345428a253721c8bdad0062721dfb861bc6e752
Building wheel for gast (setup.py) ... done
Created wheel for gast: filename=gast-0.2.2-py3-none-any.whl size=7554 sha256=a43f20d442c07dc841dc3e5640a33a0a33fd16142556abf42bf90794835dcf18
Stored in directory: c:\users\joshua\appdata\local\pip\cache\wheels\21\7f\02\420f32a803f7d0967b48dd823da3f558c5166991bfd204eef3
Building wheel for transforms3d (setup.py) ... done
Created wheel for transforms3d: filename=transforms3d-0.3.1-py3-none-any.whl size=59385 sha256=ece1aaabe73a44b9b1f2549b5fe84914b5370fd5e1d0d648263ac8573f1ef8a5
Stored in directory: c:\users\joshua\appdata\local\pip\cache\wheels\b5\b7\93\8985551f83720ce37548a5b543c75380bb707955a9c2c5d28c
Building wheel for termcolor (setup.py) ... done
Created wheel for termcolor: filename=termcolor-1.1.0-py3-none-any.whl size=4848 sha256=f29384b12c459940698cf311137fa746fdd75b9c9e2a4a0b2bb768ac4b57e974
Stored in directory: c:\users\joshua\appdata\local\pip\cache\wheels\3f\e3\ec\8a8336ff196023622fbcb36de0c5a5c218cbb24111d1d4c7f2
Building wheel for future (setup.py) ... done
Created wheel for future: filename=future-0.18.2-py3-none-any.whl size=491070 sha256=60fd11850e7794e12229d7f902c95fdc98585e8527e874ac378de00f57860f15
Stored in directory: c:\users\joshua\appdata\local\pip\cache\wheels\56\b0\fe\4410d17b32f1f0c3cf54cdfb2bc04d7b4b8f4ae377e2229ba0
Building wheel for docopt (setup.py) ... done
Created wheel for docopt: filename=docopt-0.6.2-py2.py3-none-any.whl size=13723 sha256=f6923aed3a35b79396d5b79e4fa8338ed26406d53c079e30d4d34d3936f7ea36
Stored in directory: c:\users\joshua\appdata\local\pip\cache\wheels\72\b0\3f\1d95f96ff986c7dfffe46ce2be4062f38ebd04b506c77c81b9
Successfully built colored gast transforms3d termcolor future docopt
Installing collected packages: xlwt, types-setuptools, transforms3d, termcolor, tensorflow-estimator, SimpleITK, raven, pytz, PyQt5_sip, iniconfig, docopt, dictdiffer, colored, certifi, bids-validator, zipp, wrapt, win32-setctime, werkzeug, urllib3, typing-extensions, tomli, threadpoolctl, sqlalchemy, six, requirements-parser, pyyaml, pyqt5, pyparsing, pycparser, py, psutil, protobuf, pillow, numpy, num2words, networkx, mock, kiwisolver, joblib, interface-meta, idna, gast, future, fonttools, cycler, coverage, colorama, charset-normalizer, attrs, atomicwrites, astor, wquantiles, tqdm, torch, tifffile, scipy, requests, PyWavelets, python-dateutil, packaging, opt-einsum, onnxruntime, loguru, keras-preprocessing, importlib-metadata, imageio, h5py, grpcio, google-pasta, Deprecated, cffi, absl-py, torchvision, scikit-learn, scikit-image, pluggy, pandas, nibabel, matplotlib, markdown, keras-applications, humanize, cryptography, click, torchio, tensorboard, seaborn, pytest, pyOpenSSL, Keras, formulaic, dipy, csv-diff, tensorflow, pytest-cov, pytest_console_scripts, pybids, ivadomed
Successfully installed Deprecated-1.2.13 Keras-2.3.1 PyQt5_sip-4.19.19 PyWavelets-1.2.0 SimpleITK-2.1.1 absl-py-1.0.0 astor-0.8.1 atomicwrites-1.4.0 attrs-21.4.0 bids-validator-1.8.9 certifi-2021.10.8 cffi-1.15.0 charset-normalizer-2.0.11 click-8.0.3 colorama-0.4.4 colored-1.4.3 coverage-6.3.1 cryptography-36.0.1 csv-diff-1.1 cycler-0.11.0 dictdiffer-0.9.0 dipy-1.4.1 docopt-0.6.2 fonttools-4.29.1 formulaic-0.2.4 future-0.18.2 gast-0.2.2 google-pasta-0.2.0 grpcio-1.43.0 h5py-2.10.0 humanize-3.14.0 idna-3.3 imageio-2.15.0 importlib-metadata-4.10.1 iniconfig-1.1.1 interface-meta-1.2.4 ivadomed-2.9.3 joblib-1.1.0 keras-applications-1.0.8 keras-preprocessing-1.1.2 kiwisolver-1.3.2 loguru-0.6.0 markdown-3.3.6 matplotlib-3.5.1 mock-4.0.3 networkx-2.6.3 nibabel-3.2.2 num2words-0.5.10 numpy-1.18.5 onnxruntime-1.7.0 opt-einsum-3.3.0 packaging-21.3 pandas-1.3.5 pillow-9.0.1 pluggy-1.0.0 protobuf-3.19.4 psutil-5.9.0 py-1.11.0 pyOpenSSL-22.0.0 pybids-0.14.0 pycparser-2.21 pyparsing-2.4.7 pyqt5-5.11.3 pytest-7.0.0 pytest-cov-3.0.0 pytest_console_scripts-1.2.2 python-dateutil-2.8.2 pytz-2021.3 pyyaml-6.0 raven-6.10.0 requests-2.27.1 requirements-parser-0.5.0 scikit-image-0.19.1 scikit-learn-1.0.2 scipy-1.7.3 seaborn-0.11.2 six-1.16.0 sqlalchemy-1.3.24 tensorboard-1.15.0 tensorflow-1.15.5 tensorflow-estimator-1.15.1 termcolor-1.1.0 threadpoolctl-3.1.0 tifffile-2021.11.2 tomli-2.0.1 torch-1.5.0+cpu torchio-0.18.73 torchvision-0.6.0+cpu tqdm-4.62.3 transforms3d-0.3.1 types-setuptools-57.4.9 typing-extensions-4.0.1 urllib3-1.26.8 werkzeug-2.0.3 win32-setctime-1.1.0 wquantiles-0.6 wrapt-1.13.3 xlwt-1.3.0 zipp-3.7.0
(venv_sct) C:\Users\Joshua\repos\spinalcordtoolbox>pip install -e .
Obtaining file:///C:/Users/Joshua/repos/spinalcordtoolbox
Preparing metadata (setup.py) ... done
Installing collected packages: spinalcordtoolbox
Running setup.py develop for spinalcordtoolbox
Successfully installed spinalcordtoolbox-dev
(venv_sct) C:\Users\Joshua\repos\spinalcordtoolbox>sct_check_dependencies
(venv_sct) C:\Users\Joshua\repos\spinalcordtoolbox>
--
Spinal Cord Toolbox (dev)
sct_check_dependencies
--
SCT info:
- version: dev
- path: c:\users\joshua\repos\spinalcordtoolbox
OS: not identified (Windows-10-10.0.19041-SP0)
CPU cores: Available: 8, Used by ITK functions: 8
RAM: Total: 16232MB, Used: 6877MB, Available: 9355MB
Check Python executable.............................[OK]
Using bundled python 3.7.9 (tags/v3.7.9:13c94747c7, Aug 17 2020, 18:58:18) [MSC v.1900 64 bit (AMD64)] at c:\users\joshua\repos\spinalcordtoolbox\venv_sct\scripts\python.exe
Check if data are installed.........................[FAIL]
Check if colored is installed.......................[OK] (1.4.3)
Check if dipy is installed..........................[OK] (1.4.1)
Check if h5py is installed..........................[OK] (2.10.0)
Check if Keras (2.3.1) is installed.................[OK] (2.3.1)
Check if ivadomed is installed......................[OK] (2.9.3)
Check if matplotlib is installed....................[OK] (3.5.1)
Check if nibabel is installed.......................[OK] (3.2.2)
Check if numpy is installed.........................[OK] (1.18.5)
Check if onnxruntime is installed...................[OK] (1.7.0)
Check if pandas is installed........................[OK] (1.3.5)
Check if psutil is installed........................[OK] (5.9.0)
Check if pyqt5 (5.11.3) is installed................[OK] (5.11.3)
Check if pytest is installed........................[OK] (7.0.0)
Check if pytest-cov is installed....................[OK] (3.0.0)
Check if raven is installed.........................[OK]
Check if requests is installed......................[OK] (2.27.1)
Check if requirements-parser is installed...........[OK]
Check if scipy is installed.........................[OK] (1.7.3)
Check if scikit-image is installed..................[OK] (0.19.1)
Check if scikit-learn is installed..................[OK] (1.0.2)
Check if tensorflow is installed....................[OK] (1.15.5)
Check if torch (1.5.0+cpu) is installed.............[OK] (1.5.0+cpu)
Check if torchvision (0.6.0+cpu) is installed.......[OK] (0.6.0+cpu)
Check if xlwt is installed..........................[OK] (1.3.0)
Check if tqdm is installed..........................[OK] (4.62.3)
Check if transforms3d is installed..................[OK] (0.3.1)
Check if urllib3 is installed.......................[OK] (1.26.8)
Check if pytest_console_scripts is installed........[OK]
Check if wquantiles is installed....................[OK] (0.4)
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 matplotlib.......[OK] (Using GUI backend: 'QtAgg')
Check if figure can be opened with PyQt.............[OK]
Check FSLeyes version...............................Exit code 1 occurred. Please report this issue on SCT GitHub: https://github.com/spinalcordtoolbox/spinalcordtoolbox/issues The whole process went (more or less) without a snag? All of our dependecies have Windows versions, and they all installed OK into a native Windows Python 3.7 venv. The only real issue was with the The next step, I think, will be to try running |
2. Running sct_testing as-isFirst and foremost, trying to run sct_testing triggers an Next, I manually ran
Alrighty! There are 73 issues (72 failures + 1 error) to unpack here:
So... a cursory look suggests that while the majority of errors are due to not having compiled binaries for Windows, there will be quite a bit of extra work on top of that to pin down pesky Windows-specific filesystem errors. |
3. Compiling binaries (ANTs,
|
4. Bugfixes for Windows-specific test failuresSince I was able to get a (mostly) complete set of Windows binaries, our test failures have fallen from 73 to ~50. I'm going to continue to try to get that number down even further. EDIT: I've gotten the test failures from 50 to 9: #3699 For the remaining test failures (see #3699 (comment)), I believe they will require some discussion and further digging. So, I'll make a write-up of the trickier test failures in individual issues, so that we can discuss the remaining work required for this task as a team. |
After the above comments, I've summarized the remaining work to be done in the description of this issue: #3682 (comment) I'll also continue to update the description as new developments occur in other issues. |
I'm going to mark this issue as solved by #3719. The bulk of the work has been completed, and when new issues arise, they get discussed in subsequent issues with the "Windows Compatibility" tag (as has been done for #3740). So, I think the need for a singular issue documenting the core progress is no longer needed. :) |
I encountered this during my Windows builds, too: spinalcordtoolbox/spinalcordtoolbox#3682 (comment) More context can be found in: ANTsX/ANTs#1236
Context
Currently, it is not possible to install SCT natively on Windows. Because of this, some sort of virtualization software (e.g. WSL, Docker, a VM) that mimics a UNIX-based environment is needed to run SCT on Windows.
Setting up this virtualization software is often challenging and confusing for our users. So, there is a pressing need to improve this experience -- for example, by streamlining the documentation (#3610).
This issue, however, is for the more radical approach: ditching WSL/Docker/VMs entirely by installing SCT natively on Windows. It's possible that this would require more work than is feasible, so I'm opening this issue as a place to record an initial investigation.
Remaining work
After the initial investigation from (1, 2, 3, 4), there are a number of outstanding tasks required to ensure Windows compatibility:
spinalcordtoolbox
into a pip-installable PyPI package #1526install_sct
script for Windows that takes care of the same steps that our UNIX script handles.install_sct.bat
file that takes care of the install steps.binaries_win.zip
to OSF (and patchingsct_download_data
).isct_propseg
. See this issue.isct_propseg
builds with errors on Windows 10 #3694WONTFIX
for now, but will still be used for future updates.Image
to a file with an open file pointer causesOSError: [Errno 22] Invalid argument
#3695sct_run_batch
shell script usage is incompatible with native Windows installations #3696isct_AntsSliceReg
binary causes minor failures in registration/moco test results #3697/
in path strings with the use ofos.path.join
#3707/tmp
when outputting temporary files #3708win32
in OS-specific checks that involvesys.platform
#3709isct_dice_coefficient
requires an updatedCMakeLists.txt
file to build correctly #3710run_proc
calls withsct_script.main()
calls #3711IsADirectoryError
, and instead checkisdir
first #3712\r
by usingnewline=''
in calls toopen()
when working withcsv.writer
#3713reorient_data()
repeatedly overwrites the same temporary file, causingFileExistsError
#3714The text was updated successfully, but these errors were encountered: