A user is experiencing issues installling sct: https://forum.spinalcordmri.org/t/installation-failed-problem-creating-launchers/562
Upon further inspection it appears that the installation is not happening within the bundled venv, but instead in the environment provided by the system interpreter (in this case using a pyenv shim).
Could be related to more restrictive permissions in Catalina. Possibly relevant:
Could be related to more restrictive permissions in Catalina. Possibly relevant:
Regarding the first link, I do think we're already using a Catalina-approved installation method. That StackOverflow thread points to Anaconda | How to Restore Anaconda after Update to MacOS Catalina. It says:
Start fresh with a new Anaconda installation. Pay attention during installation to make sure that your install path is a subfolder of your home folder, such as /Users/me/anaconda3
Which is indeed what we're doing with our Miniconda installation. But, that article was written by the Anaconda team in October 10th, 2019, so perhaps a recent Catalina update broke things...
i'm trying a few things to reproduce this error on my macOs, starting by removing disk access by terminal:

β€ UPDATE 2020-11-10 10:01:52: I cannot reproduce the error (installation is successful)
I tried launching SCT installation from within a venv, but I cannot reproduce the error.
Full output
julien-macbook:~/code/sct $ conda activate
(base) julien-macbook:~/code/sct $
(base) julien-macbook:~/code/sct $
(base) julien-macbook:~/code/sct $ ./install_sct
*******************************
* Welcome to SCT installation *
*******************************
Checking OS type and version...
Darwin julien-macbook.local 19.6.0 Darwin Kernel Version 19.6.0: Mon Aug 31 22:12:52 PDT 2020; root:xnu-6153.141.2~1/RELEASE_X86_64 x86_64
ProductVersion: 10.15.7
Checking requirements...
OK!
SCT version ......... 5.0.0
Installation type ... in-place
Operating system .... osx (15)
Shell config ........ /Users/julien/.bashrc
To improve user experience and fix bugs, the SCT development team is using a
report system to automatically receive crash reports and errors from users.
These reports are anonymous.
Do you agree to help us improve SCT? [y]es/[n]o: y
--> Crash reports will be sent to the SCT development team. Thank you!
SCT will be installed here: [/Users/julien/code/sct]
Do you agree? [y]es/[n]o: n
Choose install directory. Warning! Give full path (e.g. /usr/django/sct_v3.0):
/Users/julien/sct-test-1014
Copying source files from /Users/julien/code/sct to /Users/julien/sct-test-1014
......................................................................................................................................................................................................
Removing sct and isct softlink from /Users/julien/sct-test-1014/bin
Installing conda...
rm -rf /Users/julien/sct-test-1014/python
mkdir -p /Users/julien/sct-test-1014/python
wget -O /var/folders/s8/4qnm5q1n261ch35b5kkclsb00000gn/T/tmp.3ps0RONV/miniconda.sh https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
--2020-11-10 10:15:00-- https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
Resolving repo.anaconda.com (repo.anaconda.com)... 104.16.131.3, 104.16.130.3
Connecting to repo.anaconda.com (repo.anaconda.com)|104.16.131.3|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 55792438 (53M) [application/x-sh]
Saving to: β/var/folders/s8/4qnm5q1n261ch35b5kkclsb00000gn/T/tmp.3ps0RONV/miniconda.shβ
/var/folders/s8/4qnm5q1n 100%[==================================>] 53.21M 7.96MB/s in 6.7s
2020-11-10 10:15:07 (7.95 MB/s) - β/var/folders/s8/4qnm5q1n261ch35b5kkclsb00000gn/T/tmp.3ps0RONV/miniconda.shβ saved [55792438/55792438]
exit status is 0
bash /var/folders/s8/4qnm5q1n261ch35b5kkclsb00000gn/T/tmp.3ps0RONV/miniconda.sh -p /Users/julien/sct-test-1014/python -b -f
PREFIX=/Users/julien/sct-test-1014/python
Unpacking payload ...
Collecting package metadata (current_repodata.json): done
Solving environment: done
## Package Plan ##
environment location: /Users/julien/sct-test-1014/python
added / updated specs:
- ca-certificates==2020.1.1=0
- certifi==2020.4.5.1=py38_0
- cffi==1.14.0=py38hc512035_1
- chardet==3.0.4=py38_1003
- conda-package-handling==1.6.1=py38h1de35cc_0
- conda==4.8.3=py38_0
- cryptography==2.9.2=py38ha12b0ac_0
- idna==2.9=py_1
- libcxx==10.0.0=1
- libedit==3.1.20181209=hb402a30_0
- libffi==3.3=h0a44026_1
- ncurses==6.2=h0a44026_1
- openssl==1.1.1g=h1de35cc_0
- pip==20.0.2=py38_3
- pycosat==0.6.3=py38h1de35cc_1
- pycparser==2.20=py_0
- pyopenssl==19.1.0=py38_0
- pysocks==1.7.1=py38_0
- python.app==2=py38_10
- python==3.8.3=h26836e1_1
- readline==8.0=h1de35cc_0
- requests==2.23.0=py38_0
- ruamel_yaml==0.15.87=py38h1de35cc_0
- setuptools==46.4.0=py38_0
- six==1.14.0=py38_0
- sqlite==3.31.1=h5c1f38d_1
- tk==8.6.8=ha441bb4_0
- tqdm==4.46.0=py_0
- urllib3==1.25.8=py38_0
- wheel==0.34.2=py38_0
- xz==5.2.5=h1de35cc_0
- yaml==0.1.7=hc338f04_2
- zlib==1.2.11=h1de35cc_3
The following NEW packages will be INSTALLED:
ca-certificates pkgs/main/osx-64::ca-certificates-2020.1.1-0
certifi pkgs/main/osx-64::certifi-2020.4.5.1-py38_0
cffi pkgs/main/osx-64::cffi-1.14.0-py38hc512035_1
chardet pkgs/main/osx-64::chardet-3.0.4-py38_1003
conda pkgs/main/osx-64::conda-4.8.3-py38_0
conda-package-han~ pkgs/main/osx-64::conda-package-handling-1.6.1-py38h1de35cc_0
cryptography pkgs/main/osx-64::cryptography-2.9.2-py38ha12b0ac_0
idna pkgs/main/noarch::idna-2.9-py_1
libcxx pkgs/main/osx-64::libcxx-10.0.0-1
libedit pkgs/main/osx-64::libedit-3.1.20181209-hb402a30_0
libffi pkgs/main/osx-64::libffi-3.3-h0a44026_1
ncurses pkgs/main/osx-64::ncurses-6.2-h0a44026_1
openssl pkgs/main/osx-64::openssl-1.1.1g-h1de35cc_0
pip pkgs/main/osx-64::pip-20.0.2-py38_3
pycosat pkgs/main/osx-64::pycosat-0.6.3-py38h1de35cc_1
pycparser pkgs/main/noarch::pycparser-2.20-py_0
pyopenssl pkgs/main/osx-64::pyopenssl-19.1.0-py38_0
pysocks pkgs/main/osx-64::pysocks-1.7.1-py38_0
python pkgs/main/osx-64::python-3.8.3-h26836e1_1
python.app pkgs/main/osx-64::python.app-2-py38_10
readline pkgs/main/osx-64::readline-8.0-h1de35cc_0
requests pkgs/main/osx-64::requests-2.23.0-py38_0
ruamel_yaml pkgs/main/osx-64::ruamel_yaml-0.15.87-py38h1de35cc_0
setuptools pkgs/main/osx-64::setuptools-46.4.0-py38_0
six pkgs/main/osx-64::six-1.14.0-py38_0
sqlite pkgs/main/osx-64::sqlite-3.31.1-h5c1f38d_1
tk pkgs/main/osx-64::tk-8.6.8-ha441bb4_0
tqdm pkgs/main/noarch::tqdm-4.46.0-py_0
urllib3 pkgs/main/osx-64::urllib3-1.25.8-py38_0
wheel pkgs/main/osx-64::wheel-0.34.2-py38_0
xz pkgs/main/osx-64::xz-5.2.5-h1de35cc_0
yaml pkgs/main/osx-64::yaml-0.1.7-hc338f04_2
zlib pkgs/main/osx-64::zlib-1.2.11-h1de35cc_3
Preparing transaction: done
Executing transaction: done
installation finished.
Collecting package metadata (current_repodata.json): done
Solving environment: done
==> WARNING: A newer version of conda exists. <==
current version: 4.8.3
latest version: 4.9.1
Please update conda by running
$ conda update -n base -c defaults conda
## Package Plan ##
environment location: /Users/julien/sct-test-1014/python/envs/venv_sct
added / updated specs:
- python=3.6
The following packages will be downloaded:
package | build
---------------------------|-----------------
ca-certificates-2020.10.14 | 0 121 KB
certifi-2020.6.20 | pyhd3eb1b0_3 155 KB
libedit-3.1.20191231 | h1de35cc_1 96 KB
libffi-3.3 | hb1e8313_2 44 KB
openssl-1.1.1h | haf1e3a3_0 2.2 MB
pip-20.2.4 | py36hecd8cb5_0 1.8 MB
python-3.6.12 | h26836e1_2 16.9 MB
setuptools-50.3.1 | py36hecd8cb5_1 713 KB
sqlite-3.33.0 | hffcf06c_0 1.3 MB
tk-8.6.10 | hb0a8c7a_0 3.0 MB
wheel-0.35.1 | py_0 37 KB
------------------------------------------------------------
Total: 26.2 MB
The following NEW packages will be INSTALLED:
ca-certificates pkgs/main/osx-64::ca-certificates-2020.10.14-0
certifi pkgs/main/noarch::certifi-2020.6.20-pyhd3eb1b0_3
libcxx pkgs/main/osx-64::libcxx-10.0.0-1
libedit pkgs/main/osx-64::libedit-3.1.20191231-h1de35cc_1
libffi pkgs/main/osx-64::libffi-3.3-hb1e8313_2
ncurses pkgs/main/osx-64::ncurses-6.2-h0a44026_1
openssl pkgs/main/osx-64::openssl-1.1.1h-haf1e3a3_0
pip pkgs/main/osx-64::pip-20.2.4-py36hecd8cb5_0
python pkgs/main/osx-64::python-3.6.12-h26836e1_2
readline pkgs/main/osx-64::readline-8.0-h1de35cc_0
setuptools pkgs/main/osx-64::setuptools-50.3.1-py36hecd8cb5_1
sqlite pkgs/main/osx-64::sqlite-3.33.0-hffcf06c_0
tk pkgs/main/osx-64::tk-8.6.10-hb0a8c7a_0
wheel pkgs/main/noarch::wheel-0.35.1-py_0
xz pkgs/main/osx-64::xz-5.2.5-h1de35cc_0
zlib pkgs/main/osx-64::zlib-1.2.11-h1de35cc_3
Proceed ([y]/n)?
Downloading and Extracting Packages
openssl-1.1.1h | 2.2 MB | ######################################################### | 100%
ca-certificates-2020 | 121 KB | ######################################################### | 100%
setuptools-50.3.1 | 713 KB | ######################################################### | 100%
libffi-3.3 | 44 KB | ######################################################### | 100%
certifi-2020.6.20 | 155 KB | ######################################################### | 100%
tk-8.6.10 | 3.0 MB | ######################################################### | 100%
python-3.6.12 | 16.9 MB | ######################################################### | 100%
sqlite-3.33.0 | 1.3 MB | ######################################################### | 100%
pip-20.2.4 | 1.8 MB | ######################################################### | 100%
libedit-3.1.20191231 | 96 KB | ######################################################### | 100%
wheel-0.35.1 | 37 KB | ######################################################### | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
# $ conda activate venv_sct
#
# To deactivate an active environment, use
#
# $ conda deactivate
Installing Python dependencies...
Using requirements-freeze.txt (release installation)
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
Collecting absl-py==0.11.0
Using cached absl_py-0.11.0-py3-none-any.whl (127 kB)
Collecting apipkg==1.5
Using cached apipkg-1.5-py2.py3-none-any.whl (4.9 kB)
Collecting astor==0.8.1
Using cached astor-0.8.1-py2.py3-none-any.whl (27 kB)
Collecting attrs==20.3.0
Using cached attrs-20.3.0-py2.py3-none-any.whl (49 kB)
Collecting bids-neuropoly==0.2
Using cached bids_neuropoly-0.2-py3-none-any.whl (3.1 kB)
Collecting bids-validator==1.5.7
Using cached bids_validator-1.5.7-py2.py3-none-any.whl (15 kB)
Collecting bleach==1.5.0
Using cached bleach-1.5.0-py2.py3-none-any.whl (17 kB)
Collecting cachetools==4.1.1
Using cached cachetools-4.1.1-py3-none-any.whl (10 kB)
Requirement already satisfied: certifi==2020.6.20 in ./python/envs/venv_sct/lib/python3.6/site-packages (from -r requirements-freeze.txt (line 9)) (2020.6.20)
Collecting cffi==1.14.3
Using cached cffi-1.14.3-2-cp36-cp36m-macosx_10_9_x86_64.whl (176 kB)
Collecting chardet==3.0.4
Using cached chardet-3.0.4-py2.py3-none-any.whl (133 kB)
Collecting click==7.1.2
Using cached click-7.1.2-py2.py3-none-any.whl (82 kB)
Processing /Users/julien/Library/Caches/pip/wheels/ec/10/5e/d17d5ef644e1051a753bd98f3796789ec39bc3337cd36637f3/colored-1.4.2-cp36-none-any.whl
Collecting coverage==5.3
Using cached coverage-5.3-cp36-cp36m-macosx_10_13_x86_64.whl (205 kB)
Collecting cryptography==3.2.1
Using cached cryptography-3.2.1-cp35-abi3-macosx_10_10_x86_64.whl (1.8 MB)
Collecting cycler==0.10.0
Using cached cycler-0.10.0-py2.py3-none-any.whl (6.5 kB)
Collecting decorator==4.4.2
Using cached decorator-4.4.2-py2.py3-none-any.whl (9.2 kB)
Collecting dipy==1.3.0
Using cached dipy-1.3.0-cp36-cp36m-macosx_10_9_x86_64.whl (7.6 MB)
Processing /Users/julien/Library/Caches/pip/wheels/9b/04/dd/7daf4150b6d9b12949298737de9431a324d4b797ffd63f526e/docopt-0.6.2-py2.py3-none-any.whl
Collecting execnet==1.7.1
Using cached execnet-1.7.1-py2.py3-none-any.whl (39 kB)
Processing /Users/julien/Library/Caches/pip/wheels/8b/99/a0/81daf51dcd359a9377b110a8a886b3895921802d2fc1b2397e/future-0.18.2-cp36-none-any.whl
Collecting futures==3.1.1
Using cached futures-3.1.1-py3-none-any.whl (2.8 kB)
Processing /Users/julien/Library/Caches/pip/wheels/5c/2e/7e/a1d4d4fcebe6c381f378ce7743a3ced3699feb89bcfbdadadd/gast-0.2.2-cp36-none-any.whl
Collecting google-auth==1.23.0
Using cached google_auth-1.23.0-py2.py3-none-any.whl (114 kB)
Collecting google-auth-oauthlib==0.4.2
Using cached google_auth_oauthlib-0.4.2-py2.py3-none-any.whl (18 kB)
Collecting google-pasta==0.2.0
Using cached google_pasta-0.2.0-py3-none-any.whl (57 kB)
Collecting grpcio==1.33.2
Using cached grpcio-1.33.2-cp36-cp36m-macosx_10_9_x86_64.whl (3.4 MB)
Collecting h5py==2.10.0
Using cached h5py-2.10.0-cp36-cp36m-macosx_10_6_intel.whl (3.0 MB)
Processing /Users/julien/Library/Caches/pip/wheels/50/ae/f9/d2b189788efcf61d1ee0e36045476735c838898eef1cad6e29/html5lib-0.9999999-cp36-none-any.whl
Collecting idna==2.10
Using cached idna-2.10-py2.py3-none-any.whl (58 kB)
Collecting imageio==2.9.0
Using cached imageio-2.9.0-py3-none-any.whl (3.3 MB)
Collecting importlib-metadata==2.0.0
Using cached importlib_metadata-2.0.0-py2.py3-none-any.whl (31 kB)
Collecting iniconfig==1.1.1
Using cached iniconfig-1.1.1-py2.py3-none-any.whl (5.0 kB)
Collecting ivadomed==2.4.0
Using cached ivadomed-2.4.0-py3-none-any.whl (132 kB)
Collecting joblib==0.17.0
Using cached joblib-0.17.0-py3-none-any.whl (301 kB)
Collecting Keras==2.1.5
Using cached Keras-2.1.5-py2.py3-none-any.whl (334 kB)
Collecting Keras-Applications==1.0.8
Using cached Keras_Applications-1.0.8-py3-none-any.whl (50 kB)
Collecting Keras-Preprocessing==1.1.2
Using cached Keras_Preprocessing-1.1.2-py2.py3-none-any.whl (42 kB)
Collecting kiwisolver==1.3.1
Using cached kiwisolver-1.3.1-cp36-cp36m-macosx_10_9_x86_64.whl (61 kB)
Collecting Markdown==3.3.3
Using cached Markdown-3.3.3-py3-none-any.whl (96 kB)
Collecting matplotlib==3.3.2
Using cached matplotlib-3.3.2-cp36-cp36m-macosx_10_9_x86_64.whl (8.5 MB)
Collecting mock==4.0.2
Using cached mock-4.0.2-py3-none-any.whl (28 kB)
Collecting networkx==2.5
Using cached networkx-2.5-py3-none-any.whl (1.6 MB)
Collecting nibabel==3.2.0
Using cached nibabel-3.2.0-py3-none-any.whl (3.3 MB)
Collecting num2words==0.5.10
Using cached num2words-0.5.10-py3-none-any.whl (101 kB)
Collecting numpy==1.19.4
Using cached numpy-1.19.4-cp36-cp36m-macosx_10_9_x86_64.whl (15.3 MB)
Collecting oauthlib==3.1.0
Using cached oauthlib-3.1.0-py2.py3-none-any.whl (147 kB)
Collecting onnxruntime==1.5.2
Using cached onnxruntime-1.5.2-cp36-cp36m-macosx_10_12_x86_64.whl (4.4 MB)
Collecting opt-einsum==3.2.1
Using cached opt_einsum-3.2.1-py3-none-any.whl (63 kB)
Collecting packaging==20.4
Using cached packaging-20.4-py2.py3-none-any.whl (37 kB)
Collecting pandas==1.1.4
Using cached pandas-1.1.4-cp36-cp36m-macosx_10_9_x86_64.whl (10.2 MB)
Collecting patsy==0.5.1
Using cached patsy-0.5.1-py2.py3-none-any.whl (231 kB)
Collecting Pillow==8.0.1
Using cached Pillow-8.0.1-cp36-cp36m-macosx_10_10_x86_64.whl (2.2 MB)
Collecting pluggy==0.13.1
Using cached pluggy-0.13.1-py2.py3-none-any.whl (18 kB)
Collecting protobuf==3.13.0
Using cached protobuf-3.13.0-cp36-cp36m-macosx_10_9_x86_64.whl (1.3 MB)
Processing /Users/julien/Library/Caches/pip/wheels/fa/ad/67/90bbaacdcfe970960dd5158397f23a6579b51d853720d7856d/psutil-5.7.3-cp36-cp36m-macosx_10_9_x86_64.whl
Collecting py==1.9.0
Using cached py-1.9.0-py2.py3-none-any.whl (99 kB)
Collecting pyasn1==0.4.8
Using cached pyasn1-0.4.8-py2.py3-none-any.whl (77 kB)
Collecting pyasn1-modules==0.2.8
Using cached pyasn1_modules-0.2.8-py2.py3-none-any.whl (155 kB)
Collecting pybids==0.12.3
Using cached pybids-0.12.3-py2.py3-none-any.whl (3.2 MB)
Collecting pycparser==2.20
Using cached pycparser-2.20-py2.py3-none-any.whl (112 kB)
Collecting pyOpenSSL==19.1.0
Using cached pyOpenSSL-19.1.0-py2.py3-none-any.whl (53 kB)
Collecting pyparsing==2.4.7
Using cached pyparsing-2.4.7-py2.py3-none-any.whl (67 kB)
Collecting PyQt5==5.11.3
Using cached PyQt5-5.11.3-5.11.2_a-cp35.cp36.cp37.cp38-abi3-macosx_10_6_intel.whl (91.1 MB)
Collecting PyQt5-sip==4.19.19
Using cached PyQt5_sip-4.19.19-cp36-cp36m-macosx_10_6_intel.whl (52 kB)
Collecting pytest==6.1.2
Using cached pytest-6.1.2-py3-none-any.whl (272 kB)
Processing /Users/julien/Library/Caches/pip/wheels/d1/e3/94/26f2c05b0a648497c46b19eaa1fb7cc33f53f1e866ac0b74c2/pytest_console_scripts-1.0.0-py3-none-any.whl
Collecting pytest-cov==2.10.1
Using cached pytest_cov-2.10.1-py2.py3-none-any.whl (19 kB)
Collecting pytest-forked==1.3.0
Using cached pytest_forked-1.3.0-py2.py3-none-any.whl (4.7 kB)
Collecting pytest-xdist==2.1.0
Using cached pytest_xdist-2.1.0-py3-none-any.whl (36 kB)
Collecting python-dateutil==2.8.1
Using cached python_dateutil-2.8.1-py2.py3-none-any.whl (227 kB)
Collecting pytz==2020.4
Using cached pytz-2020.4-py2.py3-none-any.whl (509 kB)
Collecting PyWavelets==1.1.1
Using cached PyWavelets-1.1.1-cp36-cp36m-macosx_10_9_x86_64.whl (4.3 MB)
Processing /Users/julien/Library/Caches/pip/wheels/e5/9d/ad/2ee53cf262cba1ffd8afe1487eef788ea3f260b7e6232a80fc/PyYAML-5.3.1-cp36-cp36m-macosx_10_9_x86_64.whl
Collecting raven==6.10.0
Using cached raven-6.10.0-py2.py3-none-any.whl (284 kB)
Collecting requests==2.24.0
Using cached requests-2.24.0-py2.py3-none-any.whl (61 kB)
Collecting requests-oauthlib==1.3.0
Using cached requests_oauthlib-1.3.0-py2.py3-none-any.whl (23 kB)
Processing /Users/julien/Library/Caches/pip/wheels/c6/e5/ef/a12b26033eee476b7ebdd797528faa1765feae6e3b33a3954b/requirements_parser-0.2.0-cp36-none-any.whl
Collecting rsa==4.6
Using cached rsa-4.6-py3-none-any.whl (47 kB)
Collecting scikit-image==0.17.2
Using cached scikit_image-0.17.2-cp36-cp36m-macosx_10_13_x86_64.whl (12.1 MB)
Collecting scikit-learn==0.23.2
Using cached scikit_learn-0.23.2-cp36-cp36m-macosx_10_9_x86_64.whl (7.2 MB)
Collecting scipy==1.5.4
Using cached scipy-1.5.4-cp36-cp36m-macosx_10_9_x86_64.whl (28.8 MB)
Collecting seaborn==0.11.0
Using cached seaborn-0.11.0-py3-none-any.whl (283 kB)
Collecting six==1.15.0
Using cached six-1.15.0-py2.py3-none-any.whl (10 kB)
Collecting SQLAlchemy==1.3.20
Using cached SQLAlchemy-1.3.20-cp36-cp36m-macosx_10_14_x86_64.whl (1.2 MB)
Collecting tensorboard==2.3.0
Using cached tensorboard-2.3.0-py3-none-any.whl (6.8 MB)
Collecting tensorboard-plugin-wit==1.7.0
Using cached tensorboard_plugin_wit-1.7.0-py3-none-any.whl (779 kB)
Collecting tensorflow==1.5.0
Using cached tensorflow-1.5.0-cp36-cp36m-macosx_10_11_x86_64.whl (42.5 MB)
Collecting tensorflow-estimator==1.15.1
Using cached tensorflow_estimator-1.15.1-py2.py3-none-any.whl (503 kB)
Collecting tensorflow-tensorboard==1.5.1
Using cached tensorflow_tensorboard-1.5.1-py3-none-any.whl (3.0 MB)
Processing /Users/julien/Library/Caches/pip/wheels/7c/06/54/bc84598ba1daf8f970247f550b175aaaee85f68b4b0c5ab2c6/termcolor-1.1.0-cp36-none-any.whl
Collecting threadpoolctl==2.1.0
Using cached threadpoolctl-2.1.0-py3-none-any.whl (12 kB)
Collecting tifffile==2020.9.3
Using cached tifffile-2020.9.3-py3-none-any.whl (148 kB)
Collecting toml==0.10.2
Using cached toml-0.10.2-py2.py3-none-any.whl (16 kB)
Collecting torch==1.5.0
Using cached torch-1.5.0-cp36-none-macosx_10_9_x86_64.whl (80.5 MB)
Collecting torchvision==0.6.0
Using cached torchvision-0.6.0-cp36-cp36m-macosx_10_9_x86_64.whl (436 kB)
Collecting tqdm==4.51.0
Using cached tqdm-4.51.0-py2.py3-none-any.whl (70 kB)
Processing /Users/julien/Library/Caches/pip/wheels/3d/3c/84/28d36677f3c760c048bd02b5a547ea0c4027770cc9cdb9af1e/transforms3d-0.3.1-cp36-none-any.whl
Collecting urllib3==1.25.11
Using cached urllib3-1.25.11-py2.py3-none-any.whl (127 kB)
Collecting Werkzeug==1.0.1
Using cached Werkzeug-1.0.1-py2.py3-none-any.whl (298 kB)
Collecting xlwt==1.3.0
Using cached xlwt-1.3.0-py2.py3-none-any.whl (99 kB)
Collecting zipp==3.4.0
Using cached zipp-3.4.0-py3-none-any.whl (5.2 kB)
Requirement already satisfied: setuptools>=40.3.0 in ./python/envs/venv_sct/lib/python3.6/site-packages (from google-auth==1.23.0->-r requirements-freeze.txt (line 24)) (50.3.1.post20201107)
Requirement already satisfied: wheel>=0.26; python_version >= "3" in ./python/envs/venv_sct/lib/python3.6/site-packages (from tensorboard==2.3.0->-r requirements-freeze.txt (line 86)) (0.35.1)
Installing collected packages: six, absl-py, apipkg, astor, attrs, numpy, scipy, pytz, python-dateutil, pandas, pyparsing, packaging, nibabel, bids-validator, docopt, num2words, patsy, click, SQLAlchemy, pybids, bids-neuropoly, html5lib, bleach, cachetools, pycparser, cffi, chardet, colored, coverage, cryptography, cycler, decorator, h5py, tqdm, dipy, execnet, future, futures, gast, pyasn1, pyasn1-modules, rsa, google-auth, urllib3, idna, requests, oauthlib, requests-oauthlib, google-auth-oauthlib, google-pasta, grpcio, Pillow, imageio, zipp, importlib-metadata, iniconfig, joblib, kiwisolver, matplotlib, toml, py, pluggy, pytest, Werkzeug, protobuf, Markdown, tensorboard-plugin-wit, tensorboard, onnxruntime, threadpoolctl, scikit-learn, PyWavelets, networkx, tifffile, scikit-image, seaborn, torch, torchvision, ivadomed, PyYAML, Keras, Keras-Applications, Keras-Preprocessing, mock, opt-einsum, psutil, pyOpenSSL, PyQt5-sip, PyQt5, pytest-console-scripts, pytest-cov, pytest-forked, pytest-xdist, raven, requirements-parser, tensorflow-tensorboard, tensorflow, tensorflow-estimator, termcolor, transforms3d, xlwt
Successfully installed Keras-2.1.5 Keras-Applications-1.0.8 Keras-Preprocessing-1.1.2 Markdown-3.3.3 Pillow-8.0.1 PyQt5-5.11.3 PyQt5-sip-4.19.19 PyWavelets-1.1.1 PyYAML-5.3.1 SQLAlchemy-1.3.20 Werkzeug-1.0.1 absl-py-0.11.0 apipkg-1.5 astor-0.8.1 attrs-20.3.0 bids-neuropoly-0.2 bids-validator-1.5.7 bleach-1.5.0 cachetools-4.1.1 cffi-1.14.3 chardet-3.0.4 click-7.1.2 colored-1.4.2 coverage-5.3 cryptography-3.2.1 cycler-0.10.0 decorator-4.4.2 dipy-1.3.0 docopt-0.6.2 execnet-1.7.1 future-0.18.2 futures-3.1.1 gast-0.2.2 google-auth-1.23.0 google-auth-oauthlib-0.4.2 google-pasta-0.2.0 grpcio-1.33.2 h5py-2.10.0 html5lib-0.9999999 idna-2.10 imageio-2.9.0 importlib-metadata-2.0.0 iniconfig-1.1.1 ivadomed-2.4.0 joblib-0.17.0 kiwisolver-1.3.1 matplotlib-3.3.2 mock-4.0.2 networkx-2.5 nibabel-3.2.0 num2words-0.5.10 numpy-1.19.4 oauthlib-3.1.0 onnxruntime-1.5.2 opt-einsum-3.2.1 packaging-20.4 pandas-1.1.4 patsy-0.5.1 pluggy-0.13.1 protobuf-3.13.0 psutil-5.7.3 py-1.9.0 pyOpenSSL-19.1.0 pyasn1-0.4.8 pyasn1-modules-0.2.8 pybids-0.12.3 pycparser-2.20 pyparsing-2.4.7 pytest-6.1.2 pytest-console-scripts-1.0.0 pytest-cov-2.10.1 pytest-forked-1.3.0 pytest-xdist-2.1.0 python-dateutil-2.8.1 pytz-2020.4 raven-6.10.0 requests-2.24.0 requests-oauthlib-1.3.0 requirements-parser-0.2.0 rsa-4.6 scikit-image-0.17.2 scikit-learn-0.23.2 scipy-1.5.4 seaborn-0.11.0 six-1.15.0 tensorboard-2.3.0 tensorboard-plugin-wit-1.7.0 tensorflow-1.5.0 tensorflow-estimator-1.15.1 tensorflow-tensorboard-1.5.1 termcolor-1.1.0 threadpoolctl-2.1.0 tifffile-2020.9.3 toml-0.10.2 torch-1.5.0 torchvision-0.6.0 tqdm-4.51.0 transforms3d-0.3.1 urllib3-1.25.11 xlwt-1.3.0 zipp-3.4.0
Obtaining file:///Users/julien/sct-test-1014
Installing collected packages: spinalcordtoolbox
Running setup.py develop for spinalcordtoolbox
Successfully installed spinalcordtoolbox
Creating launchers for Python scripts...
Installing binaries...
sct_download_data -d binaries_osx -o /Users/julien/sct-test-1014/bin -k
--
Spinal Cord Toolbox (5.0.0)
Trying URL: https://osf.io/874cy?action=download
Downloading: 20200801_sct_binaries_osx.tar.gz
Status: 100%|ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ| 60.8M/60.8M [00:07<00:00, 8.34MB/s]
Creating temporary folder (/var/folders/s8/4qnm5q1n261ch35b5kkclsb00000gn/T/sct-20201110101709.039200-6xh3xijm)
Unzip data to: /var/folders/s8/4qnm5q1n261ch35b5kkclsb00000gn/T/sct-20201110101709.039200-6xh3xijm
Updating existing β/Users/julien/sct-test-1014/bin/isct_ComposeMultiTransformβ
Updating existing β/Users/julien/sct-test-1014/bin/isct_antsApplyTransformsβ
Updating existing β/Users/julien/sct-test-1014/bin/isct_antsRegistrationβ
Updating existing β/Users/julien/sct-test-1014/bin/isct_antsSliceRegularizedRegistrationβ
Updating existing β/Users/julien/sct-test-1014/bin/isct_dice_coefficientβ
Updating existing β/Users/julien/sct-test-1014/bin/isct_propsegβ
Updating existing β/Users/julien/sct-test-1014/bin/isct_spine_detectβ
Updating existing β/Users/julien/sct-test-1014/bin/isct_train_svmβ
Removing temporary folders...
Done!
All requirements installed!
Installing data...
rm -rf /Users/julien/sct-test-1014/data
mkdir -p /Users/julien/sct-test-1014/data
sct_download_data -d PAM50 -o /Users/julien/sct-test-1014/data/PAM50
--
Spinal Cord Toolbox (5.0.0)
Removing existing destination folder β/Users/julien/sct-test-1014/data/PAM50β
Trying URL: https://github.com/sct-data/PAM50/releases/download/r20201104/PAM50-r20201104.zip
Downloading: PAM50-r20201104.zip
Status: 100%|ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ| 70.9M/70.9M [00:08<00:00, 8.38MB/s]
Creating temporary folder (/var/folders/s8/4qnm5q1n261ch35b5kkclsb00000gn/T/sct-20201110101720.231864-4ztw2ngx)
Unzip data to: /var/folders/s8/4qnm5q1n261ch35b5kkclsb00000gn/T/sct-20201110101720.231864-4ztw2ngx
Removing temporary folders...
Done!
sct_download_data -d gm_model -o /Users/julien/sct-test-1014/data/gm_model
--
Spinal Cord Toolbox (5.0.0)
Removing existing destination folder β/Users/julien/sct-test-1014/data/gm_modelβ
Trying URL: https://osf.io/ugscu/?action=download
Downloading: 20160922_gm_model.zip
Status: 100%|ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ| 10.3M/10.3M [00:01<00:00, 8.18MB/s]
Creating temporary folder (/var/folders/s8/4qnm5q1n261ch35b5kkclsb00000gn/T/sct-20201110101724.679434-7j2s_zlg)
Unzip data to: /var/folders/s8/4qnm5q1n261ch35b5kkclsb00000gn/T/sct-20201110101724.679434-7j2s_zlg
Removing temporary folders...
Done!
sct_download_data -d optic_models -o /Users/julien/sct-test-1014/data/optic_models
--
Spinal Cord Toolbox (5.0.0)
Removing existing destination folder β/Users/julien/sct-test-1014/data/optic_modelsβ
Trying URL: https://github.com/sct-data/optic_models/releases/download/r20170413/20170413_optic_models.zip
Downloading: 20170413_optic_models.zip
Status: 100%|ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ| 17.7k/17.7k [00:00<00:00, 49.0MB/s]
Creating temporary folder (/var/folders/s8/4qnm5q1n261ch35b5kkclsb00000gn/T/sct-20201110101725.487048-ybxop0bl)
Unzip data to: /var/folders/s8/4qnm5q1n261ch35b5kkclsb00000gn/T/sct-20201110101725.487048-ybxop0bl
Removing temporary folders...
Done!
sct_download_data -d pmj_models -o /Users/julien/sct-test-1014/data/pmj_models
--
Spinal Cord Toolbox (5.0.0)
Removing existing destination folder β/Users/julien/sct-test-1014/data/pmj_modelsβ
Trying URL: https://github.com/sct-data/pmj_models/releases/download/r20170922/20170922_pmj_models.zip
Downloading: 20170922_pmj_models.zip
Status: 100%|ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ| 8.87k/8.87k [00:00<00:00, 33.5MB/s]
Creating temporary folder (/var/folders/s8/4qnm5q1n261ch35b5kkclsb00000gn/T/sct-20201110101726.191155-oxo67n6v)
Unzip data to: /var/folders/s8/4qnm5q1n261ch35b5kkclsb00000gn/T/sct-20201110101726.191155-oxo67n6v
Removing temporary folders...
Done!
sct_download_data -d deepseg_sc_models -o /Users/julien/sct-test-1014/data/deepseg_sc_models
--
Spinal Cord Toolbox (5.0.0)
Removing existing destination folder β/Users/julien/sct-test-1014/data/deepseg_sc_modelsβ
Trying URL: https://github.com/sct-data/deepseg_sc_models/releases/download/r20180610/20180610_deepseg_sc_models.zip
Downloading: 20180610_deepseg_sc_models.zip
Status: 100%|ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ| 58.7M/58.7M [00:07<00:00, 8.22MB/s]
Creating temporary folder (/var/folders/s8/4qnm5q1n261ch35b5kkclsb00000gn/T/sct-20201110101734.115446-68h1nx5q)
Unzip data to: /var/folders/s8/4qnm5q1n261ch35b5kkclsb00000gn/T/sct-20201110101734.115446-68h1nx5q
Removing temporary folders...
Done!
sct_download_data -d deepseg_gm_models -o /Users/julien/sct-test-1014/data/deepseg_gm_models
--
Spinal Cord Toolbox (5.0.0)
Removing existing destination folder β/Users/julien/sct-test-1014/data/deepseg_gm_modelsβ
Trying URL: https://github.com/sct-data/deepseg_gm_models/releases/download/r20180205/20180205_deepseg_gm_models.zip
Downloading: 20180205_deepseg_gm_models.zip
Status: 100%|ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ| 2.28M/2.28M [00:00<00:00, 6.76MB/s]
Creating temporary folder (/var/folders/s8/4qnm5q1n261ch35b5kkclsb00000gn/T/sct-20201110101735.808498-6a48zfu8)
Unzip data to: /var/folders/s8/4qnm5q1n261ch35b5kkclsb00000gn/T/sct-20201110101735.808498-6a48zfu8
Removing temporary folders...
Done!
sct_download_data -d deepseg_lesion_models -o /Users/julien/sct-test-1014/data/deepseg_lesion_models
--
Spinal Cord Toolbox (5.0.0)
Removing existing destination folder β/Users/julien/sct-test-1014/data/deepseg_lesion_modelsβ
Trying URL: https://github.com/sct-data/deepseg_lesion_models/releases/download/r20180613/20180613_deepseg_lesion_models.zip
Downloading: 20180613_deepseg_lesion_models.zip
Status: 100%|ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ| 16.0M/16.0M [00:01<00:00, 8.19MB/s]
Creating temporary folder (/var/folders/s8/4qnm5q1n261ch35b5kkclsb00000gn/T/sct-20201110101738.579955-zyak9rpc)
Unzip data to: /var/folders/s8/4qnm5q1n261ch35b5kkclsb00000gn/T/sct-20201110101738.579955-zyak9rpc
Removing temporary folders...
Done!
sct_download_data -d c2c3_disc_models -o /Users/julien/sct-test-1014/data/c2c3_disc_models
--
Spinal Cord Toolbox (5.0.0)
Removing existing destination folder β/Users/julien/sct-test-1014/data/c2c3_disc_modelsβ
Trying URL: https://github.com/sct-data/c2c3_disc_models/releases/download/r20190117/20190117_c2c3_disc_models.zip
Downloading: 20190117_c2c3_disc_models.zip
Status: 100%|ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ| 8.94k/8.94k [00:00<00:00, 29.8MB/s]
Creating temporary folder (/var/folders/s8/4qnm5q1n261ch35b5kkclsb00000gn/T/sct-20201110101739.459263-vfkf6oyb)
Unzip data to: /var/folders/s8/4qnm5q1n261ch35b5kkclsb00000gn/T/sct-20201110101739.459263-vfkf6oyb
Removing temporary folders...
Done!
Status: 100%|ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ| 18.0M/18.0M [00:02<00:00, 8.20MB/s]
In case an old version SCT is already installed (4.0.0-beta.1 or before), remove 'sct_env' declaration in RC file
Do you want to add the sct_* scripts to your PATH environment? [y]es/[n]o: n
Not adding /Users/julien/sct-test-1014 to $PATH.
You can always add it later or call SCT functions with full path /Users/julien/sct-test-1014/bin/sct_xxx
Validate installation...
--
Spinal Cord Toolbox (5.0.0)
SCT info:
- version: 5.0.0
- path: /Users/julien/sct-test-1014
OS: osx (Darwin-19.6.0-x86_64-i386-64bit)
CPU cores: Available: 16, Used by ITK functions: 16
RAM: Total: 16384MB, Used: 7745MB, Available: 5169MB
Check Python executable.............................[OK]
Using bundled python 3.6.12 |Anaconda, Inc.| (default, Sep 8 2020, 17:50:39)
[GCC Clang 10.0.0 ] at /Users/julien/sct-test-1014/python/envs/venv_sct/bin/python
Check if data are installed.........................[OK]
Check if colored is installed.......................[OK] (1.4.2)
Check if dipy is installed..........................[OK] (1.3.0)
Check if futures is installed.......................[OK]
Check if h5py is installed..........................[OK] (2.10.0)
Check if ivadomed (2.4.0) is installed..............[OK] (2.4.0)
Check if Keras (2.1.5) is installed.................[OK] (2.1.5)
Check if matplotlib is installed....................[OK] (3.3.2)
Check if nibabel is installed.......................[OK] (3.2.0)
Check if numpy is installed.........................[OK] (1.19.4)
Check if pandas is installed........................[OK] (1.1.4)
Check if psutil is installed........................[OK] (5.7.3)
Check if pyqt5 (5.11.3) is installed................[OK] (5.11.3)
Check if pytest is installed........................[OK] (6.1.2)
Check if pytest-cov is installed....................[OK] (__version__ = '2.10.1')
Check if raven is installed.........................[OK]
Check if requests is installed......................[OK] (2.24.0)
Check if requirements-parser is installed...........[OK] (0.2.0)
Check if scipy is installed.........................[OK] (1.5.4)
Check if scikit-image is installed..................[OK] (0.17.2)
Check if scikit-learn is installed..................[OK] (0.23.2)
Check if tensorflow (1.5.0) is installed............[OK] (1.5.0)
Check if torch (1.5.0) is installed.................[OK] (1.5.0)
Check if torchvision (0.6.0) is installed...........[OK] (0.6.0)
Check if xlwt is installed..........................[OK] (1.3.0)
Check if tqdm is installed..........................[OK] (4.51.0)
Check if transforms3d is installed..................[OK] (0.3.1)
Check if urllib3 is installed.......................[OK] (1.25.11)
Check if pytest_console_scripts is installed........[OK]
Check if pytest-xdist is installed..................[OK] (2.1.0)
Check if spinalcordtoolbox is installed.............[OK]
Check ANTs compatibility with OS ...................[OK]
Check PropSeg compatibility with OS ................[OK]
Check if DISPLAY variable is set....................[OK]
Check if figure can be opened with PyQt.............[OK]
To use SCT, please update your environment by running:
export PATH="/Users/julien/sct-test-1014/bin:$PATH"
Installation finished successfully!
I've asked them to share what happens when the conda environment is activated. See this forum comment.
They've given a response. No errors arise when trying to activate the conda environment.
In hindsight, I'm not sure why I was so focused on conda and Catalina! My best guess that the issue has to do with this person's use of pyenv (which I completely missed during the above discussion).
Our install script relies on activating our conda environment then using pip install commands to install dependencies, SCT, etc.
But, if pyenv is intercepting the pip command, then nothing would get installed to our conda environment in the first place.
And, if pyenv is intercepting the python command, then the SCT script entry points that are installed to the $SCT_DIR/bin/ folder would end up pointing to the wrong Python interpreter in their shebangs. (setuptools adds a hard-coded shebang to the beginning of each entry point file.)
Possible fixes:
pyenv at the start of our installation script, then deactivate it temporarily just in the scope of the installation? e.g. by temporarily modifying $PATH to remove the pyenv shims.pyenv, then use pyenv local to manually set the python interpreter to $SCT_DIR/python/envs/venv_sct/bin/python3.6. (I think this is the most legitimate solution, in terms of proper pyenv usage.)I might try to play around with pyenv on my system to see if I can recreate this behavior.
I'm having some trouble recreating this behavior. On my machine, even with pyenv shims active, the conda environment successfully isolates the python/pip commands.
Steps:
curl https://pyenv.run | bashpyenv install -v 3.6.9pyenv global 3.6.9yes | ./install_sct -v > install_log.txt (v5.0.1)I expected pyenv to interfere, but the install goes OK. Full log attached here: install_log.txt
joshua@XPS-15-9560:~$ which python
/home/joshua/.pyenv/shims/python
joshua@XPS-15-9560:~$ which pip
/home/joshua/.pyenv/shims/pip
joshua@XPS-15-9560:~$ source $SCT_DIR/python/etc/profile.d/conda.sh
joshua@XPS-15-9560:~$ conda activate venv_sct
(venv_sct) joshua@XPS-15-9560:~$ which python
/home/joshua/sct_5.0.1/python/envs/venv_sct/bin/python
(venv_sct) joshua@XPS-15-9560:~$ which pip
/home/joshua/sct_5.0.1/python/envs/venv_sct/bin/pip
In general, I'm glad to see this isolation! But, it doesn't help for solving this person's issue. :sweat_smile:
That definitely explains it, then. Compare my output above to the output from BrMa:
(base) MACpros-Mac-Pro:~ macpronirims$ which python
/Users/macpronirims/.pyenv/shims/python
(base) MACpros-Mac-Pro:~ macpronirims$ which pip
/Users/macpronirims/.pyenv/shims/pip
(base) MACpros-Mac-Pro:~ macpronirims$ source sct_5.0.0/python/etc/profile.d/conda.sh
(base) MACpros-Mac-Pro:~ macpronirims$ conda activate venv_sct
(venv_sct) MACpros-Mac-Pro:~ macpronirims$ which python
/Users/macpronirims/.pyenv/shims/python
(venv_sct) MACpros-Mac-Pro:~ macpronirims$ which pip
/Users/macpronirims/.pyenv/shims/pip
Activating SCT's conda environment does nothing to change the python/pip commands. The question now is... why? And, how can we help them? Hmm...
hypothetical question: is it crazy to think that the user might have reinstalled/redirected the default python from _within_ SCT's venv? There is probably a more likely explanation, but i'm throwing that possibility here π
I'm not sure, to be quite honest. I think what I may do is open an issue on the conda/conda repository, just to see if they might have any input. The devs there are more likely to be well-versed with strange interactions between conda and pyenv. :sweat_smile:
EDIT: Ahhh, they get absolutely _swamped_ with tech support issues. Yikes! :frowning_face:
To open a support issue on conda/conda, some information is needed about the conda environment. I've asked BrMa to run these commands so I can relay them over.
For now, here is my WIP issue report with missing info yet to be filled in.
Please note: I'm a dev for spinalcordtoolbox, and I'm opening this issue on behalf of a user of our software to try and diagnose their issue. (See: https://github.com/neuropoly/spinalcordtoolbox/issues/3029) So, my information is second-hand. Apologies in advance for the awkwardness this will cause. :sweat_smile:
Our software installs itself to its own miniconda environment (called venv_sct). Normally, activating this environment would switch the python/pip executables. But, for one our users, this doesn't happen:
(base) MACpros-Mac-Pro:~ macpronirims$ which python
/Users/macpronirims/.pyenv/shims/python
(base) MACpros-Mac-Pro:~ macpronirims$ which pip
/Users/macpronirims/.pyenv/shims/pip
(base) MACpros-Mac-Pro:~ macpronirims$ source sct_5.0.0/python/etc/profile.d/conda.sh
(base) MACpros-Mac-Pro:~ macpronirims$ conda activate venv_sct
(venv_sct) MACpros-Mac-Pro:~ macpronirims$ which python
/Users/macpronirims/.pyenv/shims/python
(venv_sct) MACpros-Mac-Pro:~ macpronirims$ which pip
/Users/macpronirims/.pyenv/shims/pip
I wasn't able to reproduce.
On my own machine, the python/pip executables change as expected:
joshua@XPS-15-9560:~$ which python
/home/joshua/.pyenv/shims/python
joshua@XPS-15-9560:~$ which pip
/home/joshua/.pyenv/shims/pip
joshua@XPS-15-9560:~$ source $SCT_DIR/python/etc/profile.d/conda.sh
joshua@XPS-15-9560:~$ conda activate venv_sct
(venv_sct) joshua@XPS-15-9560:~$ which python
/home/joshua/sct_5.0.1/python/envs/venv_sct/bin/python
(venv_sct) joshua@XPS-15-9560:~$ which pip
/home/joshua/sct_5.0.1/python/envs/venv_sct/bin/pip
conda info
conda config --show-sources
conda list --show-channel-urls
The user's install log shows
Requirement already satisfied: pytest-forked==1.3.0 in /Users/macpronirims/.pyenv/versions/3.6.9/lib/python3.6/site-packages (from -r requirements-freeze.txt (line 69)) (1.3.0)
Requirement already satisfied: pytest-xdist==2.1.0 in /Users/macpronirims/.pyenv/versions/3.6.9/lib/python3.6/site-packages (from -r requirements-freeze.txt (line 70)) (2.1.0)
Requirement already satisfied: python-dateutil==2.8.1 in /Users/macpronirims/.pyenv/versions/3.6.9/lib/python3.6/site-packages (from -r requirements-freeze.txt (line 71)) (2.8.1)
[...]
Installing collected packages: spinalcordtoolbox
Attempting uninstall: spinalcordtoolbox
Found existing installation: spinalcordtoolbox 4.2.2
Uninstalling spinalcordtoolbox-4.2.2:
Successfully uninstalled spinalcordtoolbox-4.2.2
Running setup.py develop for spinalcordtoolbox
Successfully installed spinalcordtoolbox
So they must have installed sct 4.2.2 into their pyenv python 3.9.6 instead of our conda env.
I'm surprised
didn't catch the error and quit, but then again maybe I shouldn't be: set -e is disabled:
((seems that was added for https://github.com/neuropoly/spinalcordtoolbox/pull/2238 but left commented out)).
If nothing else we should:
a. test that conda activate with a missing venv returns non-zero error
b. test that conda activate with a corrupted venv returns non-zero error
c. if we can reproduce this: test that conda activate with this situation returns non-zero error
d. add set -e to the install script. Also set -o pipefail is helpful, though that bash-ese.
(base) MACpros-Mac-Pro:~ macpronirims$ which python /Users/macpronirims/.pyenv/shims/python (base) MACpros-Mac-Pro:~ macpronirims$ which pip /Users/macpronirims/.pyenv/shims/pip (base) MACpros-Mac-Pro:~ macpronirims$ source sct_5.0.0/python/etc/profile.d/conda.sh (base) MACpros-Mac-Pro:~ macpronirims$ conda activate venv_sct (venv_sct) MACpros-Mac-Pro:~ macpronirims$ which python /Users/macpronirims/.pyenv/shims/python (venv_sct) MACpros-Mac-Pro:~ macpronirims$ which pip /Users/macpronirims/.pyenv/shims/pip
Notice how this starts out saying "(base)" -- that's from conda -- and after loading our conda it changes to "(venv_sct)", but not "(venv_sct) (base)". So the user has at least 4 pythons:
and our conda is at least aware enough of the other conda to prevent doubling-up on loaded envs. I bet what's going on is: our conda is detecting that "conda" is loaded and refusing to attach itself a second time, then it sets CONDA_DEFAULT_ENV=venv_sct, but that fails (silently :anger::anger:) because that venv doesn't exist within the conda in ~/.
That was totally it! I reproduced the error:
Platform: macOS 10.15.7
Use bash instead of newer zsh, since I assume our user first set this all up on an earlier version of macOS, on bash, and upgraded, and I want to reduce as much variation as I can:
chsh -s /bin/bash
Log out and back in again.
Install conda
curl -JLO https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
bash Miniconda3-latest-MacOSX-x86_64.sh # say "yes" to "condo init" here
Install pyenv:
brew install pyenv
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile
This should create this situation in your init file:
(base) users-iMac:spinalcordtoolbox-5.0.0 user$ cat ~/.bash_profile
if [[ -n "$BASH_VERSION" ]]; then
# include .bashrc if it exists
if [[ -f "$HOME/.bashrc" ]]; then
. "$HOME/.bashrc"
fi
fi
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/Users/user/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/Users/user/miniconda3/etc/profile.d/conda.sh" ]; then
. "/Users/user/miniconda3/etc/profile.d/conda.sh"
else
export PATH="/Users/user/miniconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
if command -v pyenv 1>/dev/null 2>&1; then
eval "$(pyenv init -)"
fi
Reopen the shell here to activate conda and pyenv.
Install pyenv'd python:
# https://github.com/pyenv/pyenv/wiki#suggested-build-environment
brew install openssl readline sqlite3 xz zlib
# https://github.com/pyenv/pyenv/wiki/Common-build-problems#error-the-python-ssl-extension-was-not-compiled-missing-the-openssl-lib
CFLAGS="-I$(brew --prefix openssl)/include" \
LDFLAGS="-L$(brew --prefix openssl)/lib" \
pyenv install -v 3.6.9
Activate the pyenv python
(base) users-iMac:~ user$ which python3
/Users/user/.pyenv/shims/python3
(base) users-iMac:~ user$ pyenv which python3
/usr/local/bin/python3
(base) users-iMac:~ user$ pyenv local 3.6.9 # https://github.com/pyenv/pyenv#choosing-the-python-version says that doing this at ~/ will make it account-wide.
(base) users-iMac:~ user$ pyenv which python3
/Users/user/.pyenv/versions/3.6.9/bin/python3
Notice, we're now in a situation where python3 means pyenv's version, but we're also inside a condo env.
Get SCT
curl -JLO https://github.com/neuropoly/spinalcordtoolbox/archive/5.0.0.tar.gz
tar -zxvf spinalcordtoolbox-5.0.0.tar.gz
cd spinalcordtoolbox-5.0.0
./install_sct
./install_sct log
(base) users-iMac:spinalcordtoolbox-5.0.0 user$ ./install_sct
*******************************
* Welcome to SCT installation *
*******************************
Checking OS type and version...
Darwin users-iMac.local 19.6.0 Darwin Kernel Version 19.6.0: Thu Oct 29 22:56:45 PDT 2020; root:xnu-6153.141.2.2~1/RELEASE_X86_64 x86_64
ProductVersion: 10.15.7
Checking requirements...
OK!
SCT version ......... 5.0.0
Installation type ... package
Operating system .... osx (15)
Shell config ........ /Users/user/.bashrc
To improve user experience and fix bugs, the SCT development team is using a
report system to automatically receive crash reports and errors from users.
These reports are anonymous.
Do you agree to help us improve SCT? [y]es/[n]o: y
--> Crash reports will be sent to the SCT development team. Thank you!
SCT will be installed here: [/Users/user/sct_5.0.0]
Do you agree? [y]es/[n]o: y
Copying source files from /Users/user/spinalcordtoolbox-5.0.0 to /Users/user/sct_5.0.0
................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Removing sct and isct softlink from /Users/user/sct_5.0.0/bin
Installing conda...
rm -rf /Users/user/sct_5.0.0/python
mkdir -p /Users/user/sct_5.0.0/python
curl -o /var/folders/qf/kmw8p_hn6rn7wcxzmllxd4t00000gn/T/tmp.ZdZvUrUr/miniconda.sh -L https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 54.4M 100 54.4M 0 0 2745k 0 0:00:20 0:00:20 --:--:-- 2862k
exit status is 0
bash /var/folders/qf/kmw8p_hn6rn7wcxzmllxd4t00000gn/T/tmp.ZdZvUrUr/miniconda.sh -p /Users/user/sct_5.0.0/python -b -f
PREFIX=/Users/user/sct_5.0.0/python
Unpacking payload ...
Collecting package metadata (current_repodata.json): done
Solving environment: done
## Package Plan ##
environment location: /Users/user/sct_5.0.0/python
added / updated specs:
- brotlipy==0.7.0=py38h9ed2024_1003
- ca-certificates==2020.10.14=0
- certifi==2020.6.20=pyhd3eb1b0_3
- cffi==1.14.3=py38h2125817_2
- chardet==3.0.4=py38hecd8cb5_1003
- conda-package-handling==1.7.2=py38h22f3db7_0
- conda==4.9.2=py38hecd8cb5_0
- cryptography==3.2.1=py38hbcfaee0_1
- idna==2.10=py_0
- libcxx==10.0.0=1
- libedit==3.1.20191231=h1de35cc_1
- libffi==3.3=hb1e8313_2
- ncurses==6.2=h0a44026_1
- openssl==1.1.1h=haf1e3a3_0
- pip==20.2.4=py38hecd8cb5_0
- pycosat==0.6.3=py38h1de35cc_1
- pycparser==2.20=py_2
- pyopenssl==19.1.0=pyhd3eb1b0_1
- pysocks==1.7.1=py38_1
- python.app==2=py38_10
- python==3.8.5=h26836e1_1
- readline==8.0=h1de35cc_0
- requests==2.24.0=py_0
- ruamel_yaml==0.15.87=py38haf1e3a3_1
- setuptools==50.3.1=py38hecd8cb5_1
- six==1.15.0=py38hecd8cb5_0
- sqlite==3.33.0=hffcf06c_0
- tk==8.6.10=hb0a8c7a_0
- tqdm==4.51.0=pyhd3eb1b0_0
- urllib3==1.25.11=py_0
- wheel==0.35.1=pyhd3eb1b0_0
- xz==5.2.5=h1de35cc_0
- yaml==0.2.5=haf1e3a3_0
- zlib==1.2.11=h1de35cc_3
The following NEW packages will be INSTALLED:
brotlipy pkgs/main/osx-64::brotlipy-0.7.0-py38h9ed2024_1003
ca-certificates pkgs/main/osx-64::ca-certificates-2020.10.14-0
certifi pkgs/main/noarch::certifi-2020.6.20-pyhd3eb1b0_3
cffi pkgs/main/osx-64::cffi-1.14.3-py38h2125817_2
chardet pkgs/main/osx-64::chardet-3.0.4-py38hecd8cb5_1003
conda pkgs/main/osx-64::conda-4.9.2-py38hecd8cb5_0
conda-package-han~ pkgs/main/osx-64::conda-package-handling-1.7.2-py38h22f3db7_0
cryptography pkgs/main/osx-64::cryptography-3.2.1-py38hbcfaee0_1
idna pkgs/main/noarch::idna-2.10-py_0
libcxx pkgs/main/osx-64::libcxx-10.0.0-1
libedit pkgs/main/osx-64::libedit-3.1.20191231-h1de35cc_1
libffi pkgs/main/osx-64::libffi-3.3-hb1e8313_2
ncurses pkgs/main/osx-64::ncurses-6.2-h0a44026_1
openssl pkgs/main/osx-64::openssl-1.1.1h-haf1e3a3_0
pip pkgs/main/osx-64::pip-20.2.4-py38hecd8cb5_0
pycosat pkgs/main/osx-64::pycosat-0.6.3-py38h1de35cc_1
pycparser pkgs/main/noarch::pycparser-2.20-py_2
pyopenssl pkgs/main/noarch::pyopenssl-19.1.0-pyhd3eb1b0_1
pysocks pkgs/main/osx-64::pysocks-1.7.1-py38_1
python pkgs/main/osx-64::python-3.8.5-h26836e1_1
python.app pkgs/main/osx-64::python.app-2-py38_10
readline pkgs/main/osx-64::readline-8.0-h1de35cc_0
requests pkgs/main/noarch::requests-2.24.0-py_0
ruamel_yaml pkgs/main/osx-64::ruamel_yaml-0.15.87-py38haf1e3a3_1
setuptools pkgs/main/osx-64::setuptools-50.3.1-py38hecd8cb5_1
six pkgs/main/osx-64::six-1.15.0-py38hecd8cb5_0
sqlite pkgs/main/osx-64::sqlite-3.33.0-hffcf06c_0
tk pkgs/main/osx-64::tk-8.6.10-hb0a8c7a_0
tqdm pkgs/main/noarch::tqdm-4.51.0-pyhd3eb1b0_0
urllib3 pkgs/main/noarch::urllib3-1.25.11-py_0
wheel pkgs/main/noarch::wheel-0.35.1-pyhd3eb1b0_0
xz pkgs/main/osx-64::xz-5.2.5-h1de35cc_0
yaml pkgs/main/osx-64::yaml-0.2.5-haf1e3a3_0
zlib pkgs/main/osx-64::zlib-1.2.11-h1de35cc_3
Preparing transaction: done
Executing transaction: done
installation finished.
Collecting package metadata (current_repodata.json): done
Solving environment: done
## Package Plan ##
environment location: /Users/user/sct_5.0.0/python/envs/venv_sct
added / updated specs:
- python=3.6
The following packages will be downloaded:
package | build
---------------------------|-----------------
ca-certificates-2020.12.8 | hecd8cb5_0 121 KB
certifi-2020.12.5 | py36hecd8cb5_0 141 KB
openssl-1.1.1i | h9ed2024_0 2.2 MB
pip-20.3.3 | py36hecd8cb5_0 1.8 MB
python-3.6.12 | h26836e1_2 16.9 MB
setuptools-51.0.0 | py36hecd8cb5_2 724 KB
wheel-0.36.2 | pyhd3eb1b0_0 33 KB
------------------------------------------------------------
Total: 21.8 MB
The following NEW packages will be INSTALLED:
ca-certificates pkgs/main/osx-64::ca-certificates-2020.12.8-hecd8cb5_0
certifi pkgs/main/osx-64::certifi-2020.12.5-py36hecd8cb5_0
libcxx pkgs/main/osx-64::libcxx-10.0.0-1
libedit pkgs/main/osx-64::libedit-3.1.20191231-h1de35cc_1
libffi pkgs/main/osx-64::libffi-3.3-hb1e8313_2
ncurses pkgs/main/osx-64::ncurses-6.2-h0a44026_1
openssl pkgs/main/osx-64::openssl-1.1.1i-h9ed2024_0
pip pkgs/main/osx-64::pip-20.3.3-py36hecd8cb5_0
python pkgs/main/osx-64::python-3.6.12-h26836e1_2
readline pkgs/main/osx-64::readline-8.0-h1de35cc_0
setuptools pkgs/main/osx-64::setuptools-51.0.0-py36hecd8cb5_2
sqlite pkgs/main/osx-64::sqlite-3.33.0-hffcf06c_0
tk pkgs/main/osx-64::tk-8.6.10-hb0a8c7a_0
wheel pkgs/main/noarch::wheel-0.36.2-pyhd3eb1b0_0
xz pkgs/main/osx-64::xz-5.2.5-h1de35cc_0
zlib pkgs/main/osx-64::zlib-1.2.11-h1de35cc_3
Proceed ([y]/n)?
Downloading and Extracting Packages
openssl-1.1.1i | 2.2 MB | ##################################### | 100%
pip-20.3.3 | 1.8 MB | ##################################### | 100%
certifi-2020.12.5 | 141 KB | ##################################### | 100%
ca-certificates-2020 | 121 KB | ##################################### | 100%
wheel-0.36.2 | 33 KB | ##################################### | 100%
setuptools-51.0.0 | 724 KB | ##################################### | 100%
python-3.6.12 | 16.9 MB | ##################################### | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
# $ conda activate venv_sct
#
# To deactivate an active environment, use
#
# $ conda deactivate
Installing Python dependencies...
Using requirements-freeze.txt (release installation)
Ignoring torch: markers 'sys_platform != "darwin"' don't match your environment
Ignoring torchvision: markers 'sys_platform != "darwin"' don't match your environment
Looking in links: https://download.pytorch.org/whl/cpu/torch_stable.html
Collecting absl-py==0.11.0 (from -r requirements-freeze.txt (line 1))
Using cached https://files.pythonhosted.org/packages/bc/58/0aa6fb779dc69cfc811df3398fcbeaeefbf18561b6e36b185df0782781cc/absl_py-0.11.0-py3-none-any.whl
Collecting apipkg==1.5 (from -r requirements-freeze.txt (line 2))
Using cached https://files.pythonhosted.org/packages/67/08/4815a09603fc800209431bec5b8bd2acf2f95abdfb558a44a42507fb94da/apipkg-1.5-py2.py3-none-any.whl
Collecting astor==0.8.1 (from -r requirements-freeze.txt (line 3))
Using cached https://files.pythonhosted.org/packages/c3/88/97eef84f48fa04fbd6750e62dcceafba6c63c81b7ac1420856c8dcc0a3f9/astor-0.8.1-py2.py3-none-any.whl
Collecting attrs==20.3.0 (from -r requirements-freeze.txt (line 4))
Using cached https://files.pythonhosted.org/packages/c3/aa/cb45262569fcc047bf070b5de61813724d6726db83259222cd7b4c79821a/attrs-20.3.0-py2.py3-none-any.whl
Collecting bids-neuropoly==0.2 (from -r requirements-freeze.txt (line 5))
Using cached https://files.pythonhosted.org/packages/86/52/6ed521248862d5447490d52f6b6ffaa4588d56096fe91a415d28f4a80249/bids_neuropoly-0.2-py3-none-any.whl
Collecting bids-validator==1.5.7 (from -r requirements-freeze.txt (line 6))
Using cached https://files.pythonhosted.org/packages/53/50/ae095ad8a409bea8a8682eb1e731eedb9b970f036e5d74c378dc09c3f11e/bids_validator-1.5.7-py2.py3-none-any.whl
Collecting bleach==1.5.0 (from -r requirements-freeze.txt (line 7))
Using cached https://files.pythonhosted.org/packages/33/70/86c5fec937ea4964184d4d6c4f0b9551564f821e1c3575907639036d9b90/bleach-1.5.0-py2.py3-none-any.whl
Collecting cachetools==4.1.1 (from -r requirements-freeze.txt (line 8))
Using cached https://files.pythonhosted.org/packages/cd/5c/f3aa86b6d5482f3051b433c7616668a9b96fbe49a622210e2c9781938a5c/cachetools-4.1.1-py3-none-any.whl
Collecting certifi==2020.6.20 (from -r requirements-freeze.txt (line 9))
Using cached https://files.pythonhosted.org/packages/5e/c4/6c4fe722df5343c33226f0b4e0bb042e4dc13483228b4718baf286f86d87/certifi-2020.6.20-py2.py3-none-any.whl
Collecting cffi==1.14.3 (from -r requirements-freeze.txt (line 10))
Using cached https://files.pythonhosted.org/packages/2f/80/fb0e5dfc17ee82078fc59e46d02c152d30c9d8c307a0d3f619052643f3eb/cffi-1.14.3-2-cp36-cp36m-macosx_10_9_x86_64.whl
Collecting chardet==3.0.4 (from -r requirements-freeze.txt (line 11))
Using cached https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl
Collecting click==7.1.2 (from -r requirements-freeze.txt (line 12))
Using cached https://files.pythonhosted.org/packages/d2/3d/fa76db83bf75c4f8d338c2fd15c8d33fdd7ad23a9b5e57eb6c5de26b430e/click-7.1.2-py2.py3-none-any.whl
Collecting colored==1.4.2 (from -r requirements-freeze.txt (line 13))
Using cached https://files.pythonhosted.org/packages/b2/16/04827e24c14266d9161bd86bad50069fea453fa006c3d2b31da39251184a/colored-1.4.2.tar.gz
Collecting coverage==5.3 (from -r requirements-freeze.txt (line 14))
Using cached https://files.pythonhosted.org/packages/73/c9/501a05fbb622b9964b293ab1641dd8d24b8ad63590fbddf1aa9bbcfda8ab/coverage-5.3-cp36-cp36m-macosx_10_13_x86_64.whl
Collecting cryptography==3.2.1 (from -r requirements-freeze.txt (line 15))
Using cached https://files.pythonhosted.org/packages/c4/78/6c28c899181c395d8e07778110caff21248ba97774e567e7f7895951d92e/cryptography-3.2.1-cp35-abi3-macosx_10_10_x86_64.whl
Collecting cycler==0.10.0 (from -r requirements-freeze.txt (line 16))
Using cached https://files.pythonhosted.org/packages/f7/d2/e07d3ebb2bd7af696440ce7e754c59dd546ffe1bbe732c8ab68b9c834e61/cycler-0.10.0-py2.py3-none-any.whl
Collecting decorator==4.4.2 (from -r requirements-freeze.txt (line 17))
Using cached https://files.pythonhosted.org/packages/ed/1b/72a1821152d07cf1d8b6fce298aeb06a7eb90f4d6d41acec9861e7cc6df0/decorator-4.4.2-py2.py3-none-any.whl
Collecting dipy==1.3.0 (from -r requirements-freeze.txt (line 18))
Using cached https://files.pythonhosted.org/packages/f5/7f/c12ca6637293932ee2d0d79c2f3313157b6f10ad3a8d6e3d05be7edcf309/dipy-1.3.0-cp36-cp36m-macosx_10_9_x86_64.whl
Collecting docopt==0.6.2 (from -r requirements-freeze.txt (line 19))
Using cached https://files.pythonhosted.org/packages/a2/55/8f8cab2afd404cf578136ef2cc5dfb50baa1761b68c9da1fb1e4eed343c9/docopt-0.6.2.tar.gz
Collecting execnet==1.7.1 (from -r requirements-freeze.txt (line 20))
Using cached https://files.pythonhosted.org/packages/d3/2e/c63af07fa471e0a02d05793c7a56a9f7d274a8489442a5dc4fb3b2b3c705/execnet-1.7.1-py2.py3-none-any.whl
Collecting future==0.18.2 (from -r requirements-freeze.txt (line 21))
Using cached https://files.pythonhosted.org/packages/45/0b/38b06fd9b92dc2b68d58b75f900e97884c45bedd2ff83203d933cf5851c9/future-0.18.2.tar.gz
Collecting futures==3.1.1 (from -r requirements-freeze.txt (line 22))
Using cached https://files.pythonhosted.org/packages/05/80/f41cca0ea1ff69bce7e7a7d76182b47bb4e1a494380a532af3e8ee70b9ec/futures-3.1.1-py3-none-any.whl
Collecting gast==0.2.2 (from -r requirements-freeze.txt (line 23))
Using cached https://files.pythonhosted.org/packages/4e/35/11749bf99b2d4e3cceb4d55ca22590b0d7c2c62b9de38ac4a4a7f4687421/gast-0.2.2.tar.gz
Collecting google-auth==1.23.0 (from -r requirements-freeze.txt (line 24))
Using cached https://files.pythonhosted.org/packages/1d/60/81e68e70eea91ef05bb00bcdac243d67b61f826c65aaca6961de622dffd7/google_auth-1.23.0-py2.py3-none-any.whl
Collecting google-auth-oauthlib==0.4.2 (from -r requirements-freeze.txt (line 25))
Using cached https://files.pythonhosted.org/packages/81/67/e2c34bb0628984c7ce71cce6ba6964cb29c418873847fc285f826e032e6e/google_auth_oauthlib-0.4.2-py2.py3-none-any.whl
Collecting google-pasta==0.2.0 (from -r requirements-freeze.txt (line 26))
Using cached https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl
Collecting grpcio==1.33.2 (from -r requirements-freeze.txt (line 27))
Using cached https://files.pythonhosted.org/packages/ad/1f/1401263923afa9c3b89f2997364b60e23b18899716b72be70808526495e9/grpcio-1.33.2-cp36-cp36m-macosx_10_9_x86_64.whl
Collecting h5py==2.10.0 (from -r requirements-freeze.txt (line 28))
Using cached https://files.pythonhosted.org/packages/ec/7f/a833846f5628d00f82ad87010f98294257535f1052e4a466888deba29f94/h5py-2.10.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting html5lib==0.9999999 (from -r requirements-freeze.txt (line 29))
Using cached https://files.pythonhosted.org/packages/ae/ae/bcb60402c60932b32dfaf19bb53870b29eda2cd17551ba5639219fb5ebf9/html5lib-0.9999999.tar.gz
Collecting idna==2.10 (from -r requirements-freeze.txt (line 30))
Using cached https://files.pythonhosted.org/packages/a2/38/928ddce2273eaa564f6f50de919327bf3a00f091b5baba8dfa9460f3a8a8/idna-2.10-py2.py3-none-any.whl
Collecting imageio==2.9.0 (from -r requirements-freeze.txt (line 31))
Using cached https://files.pythonhosted.org/packages/6e/57/5d899fae74c1752f52869b613a8210a2480e1a69688e65df6cb26117d45d/imageio-2.9.0-py3-none-any.whl
Collecting importlib-metadata==2.0.0 (from -r requirements-freeze.txt (line 32))
Using cached https://files.pythonhosted.org/packages/6d/6d/f4bb28424bc677bce1210bc19f69a43efe823e294325606ead595211f93e/importlib_metadata-2.0.0-py2.py3-none-any.whl
Collecting iniconfig==1.1.1 (from -r requirements-freeze.txt (line 33))
Using cached https://files.pythonhosted.org/packages/9b/dd/b3c12c6d707058fa947864b67f0c4e0c39ef8610988d7baea9578f3c48f3/iniconfig-1.1.1-py2.py3-none-any.whl
Collecting ivadomed==2.4.0 (from -r requirements-freeze.txt (line 34))
Using cached https://files.pythonhosted.org/packages/36/b4/fc77ddb8771a381d74e243a2a6cb20943cdc5f6d78be9b058bc70d385137/ivadomed-2.4.0-py3-none-any.whl
Collecting joblib==0.17.0 (from -r requirements-freeze.txt (line 35))
Using cached https://files.pythonhosted.org/packages/fc/c9/f58220ac44a1592f79a343caba12f6837f9e0c04c196176a3d66338e1ea8/joblib-0.17.0-py3-none-any.whl
Collecting Keras==2.1.5 (from -r requirements-freeze.txt (line 36))
Using cached https://files.pythonhosted.org/packages/ba/65/e4aff762b8696ec0626a6654b1e73b396fcc8b7cc6b98d78a1bc53b85b48/Keras-2.1.5-py2.py3-none-any.whl
Collecting Keras-Applications==1.0.8 (from -r requirements-freeze.txt (line 37))
Using cached https://files.pythonhosted.org/packages/71/e3/19762fdfc62877ae9102edf6342d71b28fbfd9dea3d2f96a882ce099b03f/Keras_Applications-1.0.8-py3-none-any.whl
Collecting Keras-Preprocessing==1.1.2 (from -r requirements-freeze.txt (line 38))
Using cached https://files.pythonhosted.org/packages/79/4c/7c3275a01e12ef9368a892926ab932b33bb13d55794881e3573482b378a7/Keras_Preprocessing-1.1.2-py2.py3-none-any.whl
Collecting kiwisolver==1.3.1 (from -r requirements-freeze.txt (line 39))
Using cached https://files.pythonhosted.org/packages/94/4e/f90bcdd273194230f9c08ec63a6d0874ef36ff5c077f487f761221361cc4/kiwisolver-1.3.1-cp36-cp36m-macosx_10_9_x86_64.whl
Collecting Markdown==3.3.3 (from -r requirements-freeze.txt (line 40))
Using cached https://files.pythonhosted.org/packages/ac/ef/24a91ca96efa0d7802dffb83ccc7a3c677027bea19ec3c9ee80be740408e/Markdown-3.3.3-py3-none-any.whl
Collecting matplotlib==3.3.2 (from -r requirements-freeze.txt (line 41))
Using cached https://files.pythonhosted.org/packages/da/0a/63e7c8681f0e9af130b0ad2e2321c07b50dc7edd1482a41d3c262e5c856f/matplotlib-3.3.2-cp36-cp36m-macosx_10_9_x86_64.whl
Collecting mock==4.0.2 (from -r requirements-freeze.txt (line 42))
Using cached https://files.pythonhosted.org/packages/cd/74/d72daf8dff5b6566db857cfd088907bb0355f5dd2914c4b3ef065c790735/mock-4.0.2-py3-none-any.whl
Collecting networkx==2.5 (from -r requirements-freeze.txt (line 43))
Using cached https://files.pythonhosted.org/packages/9b/cd/dc52755d30ba41c60243235460961fc28022e5b6731f16c268667625baea/networkx-2.5-py3-none-any.whl
Collecting nibabel==3.2.0 (from -r requirements-freeze.txt (line 44))
Using cached https://files.pythonhosted.org/packages/d7/7f/d3c29792fae50ef4f1f8f87af8a94d5d9fe76550b86ebcf8a251110169d8/nibabel-3.2.0-py3-none-any.whl
Collecting num2words==0.5.10 (from -r requirements-freeze.txt (line 45))
Using cached https://files.pythonhosted.org/packages/eb/a2/ea800689730732e27711c41beed4b2a129b34974435bdc450377ec407738/num2words-0.5.10-py3-none-any.whl
Collecting numpy==1.19.4 (from -r requirements-freeze.txt (line 46))
Using cached https://files.pythonhosted.org/packages/03/21/f72ec478fba7db3a4ab7a57867115a7275e48015adacb33caae2dad96f63/numpy-1.19.4-cp36-cp36m-macosx_10_9_x86_64.whl
Collecting oauthlib==3.1.0 (from -r requirements-freeze.txt (line 47))
Using cached https://files.pythonhosted.org/packages/05/57/ce2e7a8fa7c0afb54a0581b14a65b56e62b5759dbc98e80627142b8a3704/oauthlib-3.1.0-py2.py3-none-any.whl
Collecting onnxruntime==1.5.2 (from -r requirements-freeze.txt (line 48))
Using cached https://files.pythonhosted.org/packages/ab/aa/264311d128b497d8db65cf97ef9d74fafc42e8cc833e0a84770915fa6649/onnxruntime-1.5.2-cp36-cp36m-macosx_10_12_x86_64.whl
Collecting opt-einsum==3.2.1 (from -r requirements-freeze.txt (line 49))
Using cached https://files.pythonhosted.org/packages/63/a5/e6c07b08b934831ccb8c98ee335e66b7761c5754ee3cabfe4c11d0b1af28/opt_einsum-3.2.1-py3-none-any.whl
Collecting packaging==20.4 (from -r requirements-freeze.txt (line 50))
Using cached https://files.pythonhosted.org/packages/46/19/c5ab91b1b05cfe63cccd5cfc971db9214c6dd6ced54e33c30d5af1d2bc43/packaging-20.4-py2.py3-none-any.whl
Collecting pandas==1.1.4 (from -r requirements-freeze.txt (line 51))
Using cached https://files.pythonhosted.org/packages/3f/a5/2bfd885118ebec3e3efdfe3527189b1857285006dca31dc408edbacfa226/pandas-1.1.4-cp36-cp36m-macosx_10_9_x86_64.whl
Collecting patsy==0.5.1 (from -r requirements-freeze.txt (line 52))
Using cached https://files.pythonhosted.org/packages/ea/0c/5f61f1a3d4385d6bf83b83ea495068857ff8dfb89e74824c6e9eb63286d8/patsy-0.5.1-py2.py3-none-any.whl
Collecting Pillow==8.0.1 (from -r requirements-freeze.txt (line 53))
Using cached https://files.pythonhosted.org/packages/2f/87/cfbf8092e339c15591605b8d2188f3e6d4abc9b14ee21c2b51770e5df8c1/Pillow-8.0.1-cp36-cp36m-macosx_10_10_x86_64.whl
Collecting pluggy==0.13.1 (from -r requirements-freeze.txt (line 54))
Using cached https://files.pythonhosted.org/packages/a0/28/85c7aa31b80d150b772fbe4a229487bc6644da9ccb7e427dd8cc60cb8a62/pluggy-0.13.1-py2.py3-none-any.whl
Collecting protobuf==3.13.0 (from -r requirements-freeze.txt (line 55))
Using cached https://files.pythonhosted.org/packages/ec/86/eec5df8bc917e22e96e0e8e2762a6772397624fad3a7a0da5913e11490db/protobuf-3.13.0-cp36-cp36m-macosx_10_9_x86_64.whl
Collecting psutil==5.7.3 (from -r requirements-freeze.txt (line 56))
Using cached https://files.pythonhosted.org/packages/33/e0/82d459af36bda999f82c7ea86c67610591cf5556168f48fd6509e5fa154d/psutil-5.7.3.tar.gz
Collecting py==1.9.0 (from -r requirements-freeze.txt (line 57))
Using cached https://files.pythonhosted.org/packages/68/0f/41a43535b52a81e4f29e420a151032d26f08b62206840c48d14b70e53376/py-1.9.0-py2.py3-none-any.whl
Collecting pyasn1==0.4.8 (from -r requirements-freeze.txt (line 58))
Using cached https://files.pythonhosted.org/packages/62/1e/a94a8d635fa3ce4cfc7f506003548d0a2447ae76fd5ca53932970fe3053f/pyasn1-0.4.8-py2.py3-none-any.whl
Collecting pyasn1-modules==0.2.8 (from -r requirements-freeze.txt (line 59))
Using cached https://files.pythonhosted.org/packages/95/de/214830a981892a3e286c3794f41ae67a4495df1108c3da8a9f62159b9a9d/pyasn1_modules-0.2.8-py2.py3-none-any.whl
Collecting pybids==0.12.3 (from -r requirements-freeze.txt (line 60))
Using cached https://files.pythonhosted.org/packages/21/ec/4535427136b5e359855a6a24821ba26dcf22286aa08c1eec1e85717ead1f/pybids-0.12.3-py2.py3-none-any.whl
Collecting pycparser==2.20 (from -r requirements-freeze.txt (line 61))
Using cached https://files.pythonhosted.org/packages/ae/e7/d9c3a176ca4b02024debf82342dab36efadfc5776f9c8db077e8f6e71821/pycparser-2.20-py2.py3-none-any.whl
Collecting pyOpenSSL==19.1.0 (from -r requirements-freeze.txt (line 62))
Using cached https://files.pythonhosted.org/packages/9e/de/f8342b68fa9e981d348039954657bdf681b2ab93de27443be51865ffa310/pyOpenSSL-19.1.0-py2.py3-none-any.whl
Collecting pyparsing==2.4.7 (from -r requirements-freeze.txt (line 63))
Using cached https://files.pythonhosted.org/packages/8a/bb/488841f56197b13700afd5658fc279a2025a39e22449b7cf29864669b15d/pyparsing-2.4.7-py2.py3-none-any.whl
Collecting PyQt5==5.11.3 (from -r requirements-freeze.txt (line 64))
Using cached https://files.pythonhosted.org/packages/31/22/e79a35bab2221b7bdbb3cdadb25bc9b492080b7529eec5fcbfd3f2d57606/PyQt5-5.11.3-5.11.2_a-cp35.cp36.cp37.cp38-abi3-macosx_10_6_intel.whl
Collecting PyQt5-sip==4.19.19 (from -r requirements-freeze.txt (line 65))
Using cached https://files.pythonhosted.org/packages/47/f7/b018d47f5665f149404f3ccf91ebc6d95123732edefadd5d3abcd0bf86e2/PyQt5_sip-4.19.19-cp36-cp36m-macosx_10_6_intel.whl
Collecting pytest==6.1.2 (from -r requirements-freeze.txt (line 66))
Using cached https://files.pythonhosted.org/packages/b1/ee/53945d50284906adb1e613fabf2e1b8b25926e8676854bb25b93564c0ce7/pytest-6.1.2-py3-none-any.whl
Collecting pytest-console-scripts==1.0.0 (from -r requirements-freeze.txt (line 67))
Using cached https://files.pythonhosted.org/packages/ac/a0/70691fee6ac67f4073cf4d8a74d9f8c99a8ff58abfc4b3db9d3ba3a9e2c3/pytest-console-scripts-1.0.0.tar.gz
Collecting pytest-cov==2.10.1 (from -r requirements-freeze.txt (line 68))
Using cached https://files.pythonhosted.org/packages/e5/18/401594af67eda194a8b9167208621761927c937db7d60292608342bbac0a/pytest_cov-2.10.1-py2.py3-none-any.whl
Collecting pytest-forked==1.3.0 (from -r requirements-freeze.txt (line 69))
Using cached https://files.pythonhosted.org/packages/9d/88/77eeb091b4fa79f28c08718f6e6ebff5827d9d1c1dd9974218ddfbe031ee/pytest_forked-1.3.0-py2.py3-none-any.whl
Collecting pytest-xdist==2.1.0 (from -r requirements-freeze.txt (line 70))
Using cached https://files.pythonhosted.org/packages/02/25/85675fd82b6272ed4d87941b826cec68352dd4cdfbe49b5644946dd3da61/pytest_xdist-2.1.0-py3-none-any.whl
Collecting python-dateutil==2.8.1 (from -r requirements-freeze.txt (line 71))
Using cached https://files.pythonhosted.org/packages/d4/70/d60450c3dd48ef87586924207ae8907090de0b306af2bce5d134d78615cb/python_dateutil-2.8.1-py2.py3-none-any.whl
Collecting pytz==2020.4 (from -r requirements-freeze.txt (line 72))
Using cached https://files.pythonhosted.org/packages/12/f8/ff09af6ff61a3efaad5f61ba5facdf17e7722c4393f7d8a66674d2dbd29f/pytz-2020.4-py2.py3-none-any.whl
Collecting PyWavelets==1.1.1 (from -r requirements-freeze.txt (line 73))
Using cached https://files.pythonhosted.org/packages/28/cd/0d96e765d793ae0e2fa291250ab98c27c0c574b0044c5a6ec3f6ae2afa91/PyWavelets-1.1.1-cp36-cp36m-macosx_10_9_x86_64.whl
Collecting PyYAML==5.3.1 (from -r requirements-freeze.txt (line 74))
Using cached https://files.pythonhosted.org/packages/64/c2/b80047c7ac2478f9501676c988a5411ed5572f35d1beff9cae07d321512c/PyYAML-5.3.1.tar.gz
Collecting raven==6.10.0 (from -r requirements-freeze.txt (line 75))
Using cached https://files.pythonhosted.org/packages/bd/8e/62e26a88c0a1bbae677200baf0767c1022321a6555634f8129e6d55c5ddc/raven-6.10.0-py2.py3-none-any.whl
Collecting requests==2.24.0 (from -r requirements-freeze.txt (line 76))
Using cached https://files.pythonhosted.org/packages/45/1e/0c169c6a5381e241ba7404532c16a21d86ab872c9bed8bdcd4c423954103/requests-2.24.0-py2.py3-none-any.whl
Collecting requests-oauthlib==1.3.0 (from -r requirements-freeze.txt (line 77))
Using cached https://files.pythonhosted.org/packages/a3/12/b92740d845ab62ea4edf04d2f4164d82532b5a0b03836d4d4e71c6f3d379/requests_oauthlib-1.3.0-py2.py3-none-any.whl
Collecting requirements-parser==0.2.0 (from -r requirements-freeze.txt (line 78))
Using cached https://files.pythonhosted.org/packages/03/80/eb6ba1dd0429089436e90e556db50884ea21da060b10f2e5668c4cac99da/requirements-parser-0.2.0.tar.gz
Collecting rsa==4.6 (from -r requirements-freeze.txt (line 79))
Using cached https://files.pythonhosted.org/packages/1c/df/c3587a667d6b308fadc90b99e8bc8774788d033efcc70f4ecaae7fad144b/rsa-4.6-py3-none-any.whl
Collecting scikit-image==0.17.2 (from -r requirements-freeze.txt (line 80))
Using cached https://files.pythonhosted.org/packages/17/1f/bea69a3a5d7efb0e22993d08c4328678e5f6a513cad55247142be8473142/scikit_image-0.17.2-cp36-cp36m-macosx_10_13_x86_64.whl
Collecting scikit-learn==0.23.2 (from -r requirements-freeze.txt (line 81))
Using cached https://files.pythonhosted.org/packages/d9/78/44fb6f0842e93d401040cc06db1a9787c9c16df15c8970cdc8999587a322/scikit_learn-0.23.2-cp36-cp36m-macosx_10_9_x86_64.whl
Collecting scipy==1.5.4 (from -r requirements-freeze.txt (line 82))
Using cached https://files.pythonhosted.org/packages/47/c7/348acee81b0cf8eec66b4a71c8cca188f405061cb76cc3f9f72249568a22/scipy-1.5.4-cp36-cp36m-macosx_10_9_x86_64.whl
Collecting seaborn==0.11.0 (from -r requirements-freeze.txt (line 83))
Using cached https://files.pythonhosted.org/packages/bc/45/5118a05b0d61173e6eb12bc5804f0fbb6f196adb0a20e0b16efc2b8e98be/seaborn-0.11.0-py3-none-any.whl
Collecting six==1.15.0 (from -r requirements-freeze.txt (line 84))
Using cached https://files.pythonhosted.org/packages/ee/ff/48bde5c0f013094d729fe4b0316ba2a24774b3ff1c52d924a8a4cb04078a/six-1.15.0-py2.py3-none-any.whl
Collecting SQLAlchemy==1.3.20 (from -r requirements-freeze.txt (line 85))
Using cached https://files.pythonhosted.org/packages/2c/e4/d2fda4daf41fbbe3e32c2c1bf425415af5debfbaea48ae35326d8a88cd01/SQLAlchemy-1.3.20-cp36-cp36m-macosx_10_14_x86_64.whl
Collecting tensorboard==2.3.0 (from -r requirements-freeze.txt (line 86))
Using cached https://files.pythonhosted.org/packages/e9/1b/6a420d7e6ba431cf3d51b2a5bfa06a958c4141e3189385963dc7f6fbffb6/tensorboard-2.3.0-py3-none-any.whl
Collecting tensorboard-plugin-wit==1.7.0 (from -r requirements-freeze.txt (line 87))
Using cached https://files.pythonhosted.org/packages/b6/85/5c5ac0a8c5efdfab916e9c6bc18963f6a6996a8a1e19ec4ad8c9ac9c623c/tensorboard_plugin_wit-1.7.0-py3-none-any.whl
Collecting tensorflow==1.5.0 (from -r requirements-freeze.txt (line 88))
Using cached https://files.pythonhosted.org/packages/f2/0b/da4f6379f12ca375b1155f542d0d36803ba2c6b406d39e6bde5eaa2f0abe/tensorflow-1.5.0-cp36-cp36m-macosx_10_11_x86_64.whl
Collecting tensorflow-estimator==1.15.1 (from -r requirements-freeze.txt (line 89))
Using cached https://files.pythonhosted.org/packages/de/62/2ee9cd74c9fa2fa450877847ba560b260f5d0fb70ee0595203082dafcc9d/tensorflow_estimator-1.15.1-py2.py3-none-any.whl
Collecting tensorflow-tensorboard==1.5.1 (from -r requirements-freeze.txt (line 90))
Using cached https://files.pythonhosted.org/packages/cc/fa/91c06952517b4f1bc075545b062a4112e30cebe558a6b962816cb33efa27/tensorflow_tensorboard-1.5.1-py3-none-any.whl
Collecting termcolor==1.1.0 (from -r requirements-freeze.txt (line 91))
Using cached https://files.pythonhosted.org/packages/8a/48/a76be51647d0eb9f10e2a4511bf3ffb8cc1e6b14e9e4fab46173aa79f981/termcolor-1.1.0.tar.gz
Collecting threadpoolctl==2.1.0 (from -r requirements-freeze.txt (line 92))
Using cached https://files.pythonhosted.org/packages/f7/12/ec3f2e203afa394a149911729357aa48affc59c20e2c1c8297a60f33f133/threadpoolctl-2.1.0-py3-none-any.whl
Collecting tifffile==2020.9.3 (from -r requirements-freeze.txt (line 93))
Using cached https://files.pythonhosted.org/packages/42/6b/93a8ee61c6fbe20fa9c17928bd3b80484902b7fd454cecaffba42f5052cb/tifffile-2020.9.3-py3-none-any.whl
Collecting toml==0.10.2 (from -r requirements-freeze.txt (line 94))
Using cached https://files.pythonhosted.org/packages/44/6f/7120676b6d73228c96e17f1f794d8ab046fc910d781c8d151120c3f1569e/toml-0.10.2-py2.py3-none-any.whl
Collecting torch==1.5.0 (from -r requirements-freeze.txt (line 101))
Downloading https://files.pythonhosted.org/packages/c9/e0/12f7c10e6b932f5e5d39f4ed5697b41b7751443a652d8c1c031e12e197f0/torch-1.5.0-cp36-none-macosx_10_9_x86_64.whl (80.5MB)
100% |ββββββββββββββββββββββββββββββββ| 80.5MB 268kB/s
Collecting torchvision==0.6.0 (from -r requirements-freeze.txt (line 103))
Downloading https://files.pythonhosted.org/packages/68/22/edc555cc6ad8a5e17d508da8447fe60d1e29207ae63164b35853d072774e/torchvision-0.6.0-cp36-cp36m-macosx_10_9_x86_64.whl (436kB)
100% |ββββββββββββββββββββββββββββββββ| 440kB 1.2MB/s
Collecting tqdm==4.51.0 (from -r requirements-freeze.txt (line 104))
Using cached https://files.pythonhosted.org/packages/93/3a/96b3dc293aa72443cf9627444c3c221a7ba34bb622e4d8bf1b5d4f2d9d08/tqdm-4.51.0-py2.py3-none-any.whl
Collecting transforms3d==0.3.1 (from -r requirements-freeze.txt (line 105))
Using cached https://files.pythonhosted.org/packages/b5/f7/e85809168a548a854d7c1331560c27b4f5381698d29c12e57759192b2bc1/transforms3d-0.3.1.tar.gz
Collecting urllib3==1.25.11 (from -r requirements-freeze.txt (line 106))
Using cached https://files.pythonhosted.org/packages/56/aa/4ef5aa67a9a62505db124a5cb5262332d1d4153462eb8fd89c9fa41e5d92/urllib3-1.25.11-py2.py3-none-any.whl
Collecting Werkzeug==1.0.1 (from -r requirements-freeze.txt (line 107))
Using cached https://files.pythonhosted.org/packages/cc/94/5f7079a0e00bd6863ef8f1da638721e9da21e5bacee597595b318f71d62e/Werkzeug-1.0.1-py2.py3-none-any.whl
Collecting xlwt==1.3.0 (from -r requirements-freeze.txt (line 108))
Using cached https://files.pythonhosted.org/packages/44/48/def306413b25c3d01753603b1a222a011b8621aed27cd7f89cbc27e6b0f4/xlwt-1.3.0-py2.py3-none-any.whl
Collecting zipp==3.4.0 (from -r requirements-freeze.txt (line 109))
Using cached https://files.pythonhosted.org/packages/41/ad/6a4f1a124b325618a7fb758b885b68ff7b058eec47d9220a12ab38d90b1f/zipp-3.4.0-py3-none-any.whl
Requirement already satisfied: setuptools>=40.3.0 in /Users/user/.pyenv/versions/3.6.9/lib/python3.6/site-packages (from google-auth==1.23.0->-r requirements-freeze.txt (line 24)) (40.6.2)
Collecting wheel>=0.26; python_version >= "3" (from tensorboard==2.3.0->-r requirements-freeze.txt (line 86))
Downloading https://files.pythonhosted.org/packages/65/63/39d04c74222770ed1589c0eaba06c05891801219272420b40311cd60c880/wheel-0.36.2-py2.py3-none-any.whl
tensorboard 2.3.0 has requirement setuptools>=41.0.0, but you'll have setuptools 40.6.2 which is incompatible.
Installing collected packages: six, absl-py, apipkg, astor, attrs, numpy, pyparsing, packaging, nibabel, SQLAlchemy, docopt, num2words, patsy, click, scipy, pytz, python-dateutil, pandas, bids-validator, pybids, bids-neuropoly, html5lib, bleach, cachetools, certifi, pycparser, cffi, chardet, colored, coverage, cryptography, cycler, decorator, h5py, tqdm, dipy, execnet, future, futures, gast, pyasn1, rsa, pyasn1-modules, google-auth, oauthlib, urllib3, idna, requests, requests-oauthlib, google-auth-oauthlib, google-pasta, grpcio, Pillow, imageio, zipp, importlib-metadata, iniconfig, protobuf, onnxruntime, kiwisolver, matplotlib, seaborn, pluggy, toml, py, pytest, torch, PyWavelets, tifffile, networkx, scikit-image, Markdown, Werkzeug, wheel, tensorboard-plugin-wit, tensorboard, joblib, threadpoolctl, scikit-learn, torchvision, ivadomed, PyYAML, Keras, Keras-Applications, Keras-Preprocessing, mock, opt-einsum, psutil, pyOpenSSL, PyQt5-sip, PyQt5, pytest-console-scripts, pytest-cov, pytest-forked, pytest-xdist, raven, requirements-parser, tensorflow-tensorboard, tensorflow, tensorflow-estimator, termcolor, transforms3d, xlwt
Running setup.py install for docopt ... done
Running setup.py install for html5lib ... done
Running setup.py install for colored ... done
Running setup.py install for future ... done
Running setup.py install for gast ... done
Running setup.py install for PyYAML ... done
Running setup.py install for psutil ... done
Running setup.py install for pytest-console-scripts ... done
Running setup.py install for requirements-parser ... done
Running setup.py install for termcolor ... done
Running setup.py install for transforms3d ... done
Successfully installed Keras-2.1.5 Keras-Applications-1.0.8 Keras-Preprocessing-1.1.2 Markdown-3.3.3 Pillow-8.0.1 PyQt5-5.11.3 PyQt5-sip-4.19.19 PyWavelets-1.1.1 PyYAML-5.3.1 SQLAlchemy-1.3.20 Werkzeug-1.0.1 absl-py-0.11.0 apipkg-1.5 astor-0.8.1 attrs-20.3.0 bids-neuropoly-0.2 bids-validator-1.5.7 bleach-1.5.0 cachetools-4.1.1 certifi-2020.6.20 cffi-1.14.3 chardet-3.0.4 click-7.1.2 colored-1.4.2 coverage-5.3 cryptography-3.2.1 cycler-0.10.0 decorator-4.4.2 dipy-1.3.0 docopt-0.6.2 execnet-1.7.1 future-0.18.2 futures-3.1.1 gast-0.2.2 google-auth-1.23.0 google-auth-oauthlib-0.4.2 google-pasta-0.2.0 grpcio-1.33.2 h5py-2.10.0 html5lib-0.9999999 idna-2.10 imageio-2.9.0 importlib-metadata-2.0.0 iniconfig-1.1.1 ivadomed-2.4.0 joblib-0.17.0 kiwisolver-1.3.1 matplotlib-3.3.2 mock-4.0.2 networkx-2.5 nibabel-3.2.0 num2words-0.5.10 numpy-1.19.4 oauthlib-3.1.0 onnxruntime-1.5.2 opt-einsum-3.2.1 packaging-20.4 pandas-1.1.4 patsy-0.5.1 pluggy-0.13.1 protobuf-3.13.0 psutil-5.7.3 py-1.9.0 pyOpenSSL-19.1.0 pyasn1-0.4.8 pyasn1-modules-0.2.8 pybids-0.12.3 pycparser-2.20 pyparsing-2.4.7 pytest-6.1.2 pytest-console-scripts-1.0.0 pytest-cov-2.10.1 pytest-forked-1.3.0 pytest-xdist-2.1.0 python-dateutil-2.8.1 pytz-2020.4 raven-6.10.0 requests-2.24.0 requests-oauthlib-1.3.0 requirements-parser-0.2.0 rsa-4.6 scikit-image-0.17.2 scikit-learn-0.23.2 scipy-1.5.4 seaborn-0.11.0 six-1.15.0 tensorboard-2.3.0 tensorboard-plugin-wit-1.7.0 tensorflow-1.5.0 tensorflow-estimator-1.15.1 tensorflow-tensorboard-1.5.1 termcolor-1.1.0 threadpoolctl-2.1.0 tifffile-2020.9.3 toml-0.10.2 torch-1.5.0 torchvision-0.6.0 tqdm-4.51.0 transforms3d-0.3.1 urllib3-1.25.11 wheel-0.36.2 xlwt-1.3.0 zipp-3.4.0
You are using pip version 18.1, however version 20.3.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Obtaining file:///Users/user/sct_5.0.0
Installing collected packages: spinalcordtoolbox
Running setup.py develop for spinalcordtoolbox
Successfully installed spinalcordtoolbox
You are using pip version 18.1, however version 20.3.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Creating launchers for Python scripts...
cp: /Users/user/sct_5.0.0/python/envs/venv_sct/bin/*sct*: No such file or directory
Problem creating launchers!
Installation failed!
Please copy the historic of this Terminal (starting with the command install_sct) and paste it in a new created topic on SCT's forum:
--> http://forum.spinalcordmri.org/c/sct
Problem creating launchers!
it says!
Now that I can repro it, I can investigate what's wrong:
(base) users-iMac:spinalcordtoolbox-5.0.0 user$ which python
/Users/user/.pyenv/shims/python
(base) users-iMac:spinalcordtoolbox-5.0.0 user$ which pip
/Users/user/.pyenv/shims/pip
(base) users-iMac:spinalcordtoolbox-5.0.0 user$ pyenv which python
/Users/user/.pyenv/versions/3.6.9/bin/python
(base) users-iMac:spinalcordtoolbox-5.0.0 user$ pyenv which pip
/Users/user/.pyenv/versions/3.6.9/bin/pip
(base) users-iMac:spinalcordtoolbox-5.0.0 user$ set > /tmp/pre.env
(base) users-iMac:spinalcordtoolbox-5.0.0 user$ source ~/sct_5.0.0/python/etc/profile.d/conda.sh
(base) users-iMac:spinalcordtoolbox-5.0.0 user$ set > /tmp/mid.env
(base) users-iMac:spinalcordtoolbox-5.0.0 user$ which conda
/Users/user/miniconda3/bin/conda
(base) users-iMac:spinalcordtoolbox-5.0.0 user$ which python
/Users/user/.pyenv/shims/python
(venv_sct) users-iMac:spinalcordtoolbox-5.0.0 user$ diff -u /tmp/pre.env /tmp/mid.env
--- /tmp/pre.env 2020-12-16 02:53:08.000000000 -0500
+++ /tmp/mid.env 2020-12-16 02:53:32.000000000 -0500
@@ -8,11 +8,11 @@
BASH_VERSION='3.2.57(1)-release'
COLUMNS=170
CONDA_DEFAULT_ENV=base
-CONDA_EXE=/Users/user/miniconda3/bin/conda
+CONDA_EXE=/Users/user/sct_5.0.0/python/bin/conda
CONDA_INTERNAL_OLDPATH=/Users/user/miniconda3/condabin:/Users/user/sct_5.0.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
CONDA_PREFIX=/Users/user/miniconda3
CONDA_PROMPT_MODIFIER='(base) '
-CONDA_PYTHON_EXE=/Users/user/miniconda3/bin/python
+CONDA_PYTHON_EXE=/Users/user/sct_5.0.0/python/bin/python
CONDA_SHLVL=1
DIRSTACK=()
EUID=501
@@ -66,7 +66,7 @@
USER=user
XPC_FLAGS=0x0
XPC_SERVICE_NAME=0
-_=pip
+_=/Users/user/sct_5.0.0/python/etc/profile.d/conda.sh
_CE_CONDA=
_CE_M=
rc=0
After attemtping to load our conda, CONDA{,_PYTHON}_EXE got edited, however PATH did not and conda still means the outer conda install and python is still the original python -- namely pyenv's.
But if we use conda activate:
(base) users-iMac:spinalcordtoolbox-5.0.0 user$ conda activate venv_sct; echo $?
0
(venv_sct) users-iMac:spinalcordtoolbox-5.0.0 user$ set > /tmp/post.env
(venv_sct) users-iMac:spinalcordtoolbox-5.0.0 user$ which conda
/Users/user/miniconda3/condabin/conda
(venv_sct) users-iMac:spinalcordtoolbox-5.0.0 user$ which python
/Users/user/.pyenv/shims/python
(venv_sct) users-iMac:spinalcordtoolbox-5.0.0 user$ diff -u /tmp/mid.env /tmp/post.env
--- /tmp/mid.env 2020-12-16 02:53:32.000000000 -0500
+++ /tmp/post.env 2020-12-16 02:54:19.000000000 -0500
@@ -7,13 +7,14 @@
BASH_VERSINFO=([0]="3" [1]="2" [2]="57" [3]="1" [4]="release" [5]="x86_64-apple-darwin19")
BASH_VERSION='3.2.57(1)-release'
COLUMNS=170
-CONDA_DEFAULT_ENV=base
+CONDA_DEFAULT_ENV=venv_sct
CONDA_EXE=/Users/user/sct_5.0.0/python/bin/conda
-CONDA_INTERNAL_OLDPATH=/Users/user/miniconda3/condabin:/Users/user/sct_5.0.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
-CONDA_PREFIX=/Users/user/miniconda3
-CONDA_PROMPT_MODIFIER='(base) '
+CONDA_INTERNAL_OLDPATH=/Users/user/.pyenv/shims:/Users/user/miniconda3/bin:/Users/user/miniconda3/condabin:/Users/user/sct_5.0.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
+CONDA_PREFIX=/Users/user/sct_5.0.0/python/envs/venv_sct
+CONDA_PREFIX_1=/Users/user/miniconda3
+CONDA_PROMPT_MODIFIER='(venv_sct) '
CONDA_PYTHON_EXE=/Users/user/sct_5.0.0/python/bin/python
-CONDA_SHLVL=1
+CONDA_SHLVL=2
DIRSTACK=()
EUID=501
GROUPS=()
@@ -33,11 +34,11 @@
OPTERR=1
OPTIND=1
OSTYPE=darwin19
-PATH=/Users/user/.pyenv/shims:/Users/user/miniconda3/bin:/Users/user/miniconda3/condabin:/Users/user/sct_5.0.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
+PATH=/Users/user/.pyenv/shims:/Users/user/sct_5.0.0/python/envs/venv_sct/bin:/Users/user/miniconda3/condabin:/Users/user/sct_5.0.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
PIPESTATUS=([0]="0")
PPID=39458
PROMPT_COMMAND=update_terminal_cwd
-PS1='(base) \h:\W \u\$ '
+PS1='(venv_sct) \h:\W \u\$ '
PS2='> '
PS4='+ '
PWD=/Users/user/spinalcordtoolbox-5.0.0
@@ -56,7 +57,7 @@
SHELL_SESSION_TIMESTAMP_FILE=/Users/user/.bash_sessions/_expiration_check_timestamp
SHLVL=1
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.tdyisctgXC/Listeners
-SYSP=/Users/user/miniconda3
+SYSP=/Users/user/sct_5.0.0/python
TERM=xterm-256color
TERM_PROGRAM=Apple_Terminal
TERM_PROGRAM_VERSION=433
@@ -66,7 +67,7 @@
USER=user
XPC_FLAGS=0x0
XPC_SERVICE_NAME=0
-_=/Users/user/sct_5.0.0/python/etc/profile.d/conda.sh
+_=conda
_CE_CONDA=
_CE_M=
rc=0
(venv_sct) users-iMac:spinalcordtoolbox-5.0.0 user$ python
Python 3.6.9 (default, Dec 16 2020, 01:15:44)
[GCC Apple LLVM 12.0.0 (clang-1200.0.31.1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.prefix
'/Users/user/.pyenv/versions/3.6.9'
>>> sys.path
['', '/Users/user/.pyenv/versions/3.6.9/lib/python36.zip', '/Users/user/.pyenv/versions/3.6.9/lib/python3.6', '/Users/user/.pyenv/versions/3.6.9/lib/python3.6/lib-dynload', '/Users/user/.pyenv/versions/3.6.9/lib/python3.6/site-packages', '/Users/user/sct_5.0.0']
Now, it has rewritten the PATH, but instead of the usual convention of treating it as a stack, it's done a search-and-replace for its own path and substituted it for the nested conda env, and incremented its internal CONDA_SHLVL value, and actually trying to use it does not find the right python.
Curiously, activating an incorrect environment will trigger conda rewriting the path to point at the inner conda's python ((which is still different than the python we want)):
(base) users-iMac:spinalcordtoolbox-5.0.0 user$ source ~/sct_5.0.0/python/etc/profile.d/conda.sh
(reverse-i-search)`set > /tmp/': set > /tmp/fourth.env
(base) users-iMac:spinalcordtoolbox-5.0.0 user$ set > /tmp/c.env
(base) users-iMac:spinalcordtoolbox-5.0.0 user$ which python
/Users/user/.pyenv/shims/python
(base) users-iMac:spinalcordtoolbox-5.0.0 user$ conda activate vvenv_sct
Could not find conda environment: vvenv_sct
You can list all discoverable environments with `conda info --envs`.
(base) users-iMac:spinalcordtoolbox-5.0.0 user$ which python
/Users/user/sct_5.0.0/python/bin/python
(base) users-iMac:spinalcordtoolbox-5.0.0 user$ set > /tmp/d.env
(base) users-iMac:spinalcordtoolbox-5.0.0 user$ diff -u /tmp/{c,d}.env
--- /tmp/c.env 2020-12-16 03:09:21.000000000 -0500
+++ /tmp/d.env 2020-12-16 03:09:41.000000000 -0500
@@ -9,7 +9,7 @@
COLUMNS=170
CONDA_DEFAULT_ENV=base
CONDA_EXE=/Users/user/sct_5.0.0/python/bin/conda
-CONDA_INTERNAL_OLDPATH=/Users/user/miniconda3/condabin:/Users/user/sct_5.0.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
+CONDA_INTERNAL_OLDPATH=/Users/user/.pyenv/shims:/Users/user/miniconda3/bin:/Users/user/miniconda3/condabin:/Users/user/sct_5.0.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
CONDA_PREFIX=/Users/user/miniconda3
CONDA_PROMPT_MODIFIER='(base) '
CONDA_PYTHON_EXE=/Users/user/sct_5.0.0/python/bin/python
@@ -33,7 +33,7 @@
OPTERR=1
OPTIND=1
OSTYPE=darwin19
-PATH=/Users/user/.pyenv/shims:/Users/user/miniconda3/bin:/Users/user/miniconda3/condabin:/Users/user/sct_5.0.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
+PATH=/Users/user/sct_5.0.0/python/bin:/Users/user/.pyenv/shims:/Users/user/miniconda3/bin:/Users/user/miniconda3/condabin:/Users/user/sct_5.0.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
PIPESTATUS=([0]="0")
PPID=40260
PROMPT_COMMAND=update_terminal_cwd
@@ -56,7 +56,7 @@
SHELL_SESSION_TIMESTAMP_FILE=/Users/user/.bash_sessions/_expiration_check_timestamp
SHLVL=1
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.tdyisctgXC/Listeners
-SYSP=/Users/user/miniconda3
+SYSP=/Users/user/sct_5.0.0/python
TERM=xterm-256color
TERM_PROGRAM=Apple_Terminal
TERM_PROGRAM_VERSION=433
@@ -66,7 +66,7 @@
USER=user
XPC_FLAGS=0x0
XPC_SERVICE_NAME=0
-_=/Users/user/sct_5.0.0/python/etc/profile.d/conda.sh
+_=python
_CE_CONDA=
_CE_M=
rc=0
(base) users-iMac:spinalcordtoolbox-5.0.0 user$ python
Python 3.8.5 (default, Sep 4 2020, 02:22:02)
[Clang 10.0.0 ] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
tl;dr: conda has buggy support for nested condas which is incompatible with non-conda pythons. Furthermore, it doesn't even know it's incompatible: conda activate succeeds where it should fail.
The user should choose: conda or pyenv. They can't have both. I would recommend they do conda init --reverse but https://github.com/pyenv/pyenv#uninstalling-pyenv would solve it too.
We're not helping by adding an extra conda in the mix. That's even more motivation for getting a widely compatible PyPI package together #1526. We should add set -e to our installer, but that wouldn't have helped here because conda doesn't notice there's a problem; maybe we can glue over it by checking which ourselves?
I do think conda has a legit bug here (https://github.com/conda/conda/issues/10401). I think in the current way you described it, @joshuacwnewton , they're probably going to WONTFIX it. I think the real issues are:
conda is incompatible with pyenv but they don't give any clue about that at any timeconda activate can succeed when it hasn't checked that which python is the one it expectsconda activate failing causes a state change (???); so does conda info --envswhich python != conda's python.
@joshuacwnewton if you're interested (and if jcohenadad feels it's worth it I guess), you should be able to repro this on Linux and without SCT in the mix, and submitting that to your conda thread. I'm...going to bed for now. But I'd recommend making yourself a spare user on your system so you don't mess up your env too hard, suing to it, installing conda and then pyenv and then a second conda (in that order). It's kind of tedious to wait for everything to install but once it's there this should work there.
My example above used the interactive conda install but that thing has a non-interactive mode which is better for repros.
Thank you so much for exploring this issue, @kousu! You've definitely pinpointed the problem. I was able to reproduce on my Ubuntu machine. :smile:
I have a straghtforward method to reproduce. Install both pyenv and Anaconda such that your .bashrc has the following entries (in this order):
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/joshua/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/home/joshua/anaconda3/etc/profile.d/conda.sh" ]; then
. "/home/joshua/anaconda3/etc/profile.d/conda.sh"
else
export PATH="/home/joshua/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
# pyenv
export PATH="/home/joshua/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
Because conda's block comes first, then pyenv's, the issue will occur.
(base) joshua@XPS-15-9560:~$ which python
/home/joshua/.pyenv/shims/python
(base) joshua@XPS-15-9560:~$ source $SCT_DIR/python/etc/profile.d/conda.sh
(base) joshua@XPS-15-9560:~$ conda activate venv_sct
(venv_sct) joshua@XPS-15-9560:~$ which python
/home/joshua/.pyenv/shims/python
But, if you swap the blocks in .bashrc such that conda's modifications come after pyenv's, then everything works OK.
(base) joshua@XPS-15-9560:~$ which python
/home/joshua/anaconda3/bin/python
(base) joshua@XPS-15-9560:~$ source $SCT_DIR/python/etc/profile.d/conda.sh
(base) joshua@XPS-15-9560:~$ conda activate venv_sct
(venv_sct) joshua@XPS-15-9560:~$ which python
/home/joshua/repos/spinalcordtoolbox/python/envs/venv_sct/bin/python
So, as you reported @kousu, the installation order does indeed matter.
conda (base)pyenvI have a simple fix for the problem: Just conda deactivate before doing anything else.
Without conda deactivate:
(base) joshua@XPS-15-9560:~$ which python
/home/joshua/.pyenv/shims/python
(base) joshua@XPS-15-9560:~$ source $SCT_DIR/python/etc/profile.d/conda.sh
(base) joshua@XPS-15-9560:~$ conda activate venv_sct
(venv_sct) joshua@XPS-15-9560:~$ which python
/home/joshua/.pyenv/shims/python
With conda deactivate:
(base) joshua@XPS-15-9560:~$ which python
/home/joshua/.pyenv/shims/python
(base) joshua@XPS-15-9560:~$ conda deactivate
joshua@XPS-15-9560:~$ source $SCT_DIR/python/etc/profile.d/conda.sh
joshua@XPS-15-9560:~$ conda activate venv_sct
(venv_sct) joshua@XPS-15-9560:~$ which python
/home/joshua/repos/spinalcordtoolbox/python/envs/venv_sct/bin/python
Similarly, I can confirm that running conda deactivate allows ./install_sct to run successfully.
thank you so much for identifying this tricky bug @kousu and @joshuacwnewton !!!
maybe we can glue over it by checking which ourselves?
for now, it seems to me like a good pragmatic and not too intrusive approach to overcome this issue in the near future.
I've given some quick fixes. Please take a look when you have some time.
As a small update, conda deactivate has worked for the user. (Forum post)
Taking a look at the PRs now. :)
That's good news!
I think they should uninstall their base conda to avoid conflicts in the future; they're not using it. Could our launchers have weird issues if there are three pythons in the mix?
I think they should uninstall their base conda to avoid conflicts in the future; they're not using it.
Good thinking. I've tried my best to point this out in a polite way... hopefully they find it helpful! :)
Closing, as this was addressed by #3103, but not linked to this issue.
Most helpful comment