Spinalcordtoolbox: Activating conda env doesn't override user's pyenv during install_sct

Created on 10 Nov 2020  Β·  27Comments  Β·  Source: spinalcordtoolbox/spinalcordtoolbox

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).

Most helpful comment

python_environment

All 27 comments

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:
Screen Shot 2020-11-10 at 9 56 22 AM

➀ 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.

https://github.com/neuropoly/spinalcordtoolbox/blob/dc97d42730d7e603f83e54c68f242ad2bef7189b/install_sct#L550-L551

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:

  • We could try to detect 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.
  • We could try to detect 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 | bash
  • pyenv install -v 3.6.9
  • pyenv global 3.6.9
  • yes | ./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

  • Then, the following steps:
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.

Current Behavior

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

Steps to Reproduce

I wasn't able to reproduce.

Expected Behavior

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

Environment Information

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

https://github.com/neuropoly/spinalcordtoolbox/blob/e07cd93cdd9f856b326f81efdd470d10ea642af2/install_sct#L529

didn't catch the error and quit, but then again maybe I shouldn't be: set -e is disabled:

https://github.com/neuropoly/spinalcordtoolbox/blob/e07cd93cdd9f856b326f81efdd470d10ea642af2/install_sct#L23

((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:

  • macOS python
  • conda in their ~/
  • pyenv conda (which is apparently their default python)
  • our conda

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

pyenv_install_3.6.9.log.txt

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 time
  • conda activate can succeed when it hasn't checked that which python is the one it expects
  • conda activate failing causes a state change (???); so does conda info --envs
    They might WONTFIX it anyway, and just say that you can't mix pythons (I would think that rude; conda's whole strategy is We Control The Platform And We'll Make It Work For You so they have precedent, I'm just not a fan of that approach). Maybe we can badger them into at least adding warnings if which python != conda's python.

python_environment

@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.

  1. System-wide conda (base)
  2. pyenv
  3. Miniconda

I 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.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

jcohenadad picture jcohenadad  Β·  20Comments

saulo-p picture saulo-p  Β·  23Comments

kousu picture kousu  Β·  21Comments

jcohenadad picture jcohenadad  Β·  30Comments

jcohenadad picture jcohenadad  Β·  20Comments