Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Segmentation fault for Apple Silicon M1 CPU #23

Open
neurolabusc opened this issue Apr 20, 2022 · 32 comments
Open

Segmentation fault for Apple Silicon M1 CPU #23

neurolabusc opened this issue Apr 20, 2022 · 32 comments

Comments

@neurolabusc
Copy link
Member

Recent versions of the testing_script branch fail on my macOS M1 computer. Earlier commits work correctly. I am eager to try out the new features (options to save indices and positions as 32-bit values). There is no documentation on installation, so perhaps I am doing something wrong. Can you replicate this behavior (assuming a valid TRK file in the home directory):

$ git clone --branch testing_script https://github.com/frheault/tractography_file_format.git
$ cd tractography_file_format 
$ pip3 install .
$ python tff_convert_tractogram.py ~/IFOF_L.trk ~/IFOF_L.trx
zsh: segmentation fault  python tff_convert_tractogram.py ~/IFOF_L.trk ~/IFOF_L.trx
@frheault
Copy link
Collaborator

I always use the -e option. Otherwise, I never got that error.

I will try to get someone else with a Mac to test.

@neurolabusc
Copy link
Member Author

My computer uses the Apple Silicon M1 CPU.

$git clone --branch testing_script https://github.com/frheault/tractography_file_format.git
$ cd tractography_file_format 
$ pip3 install -e .
Obtaining file:///Users/chrisrorden/Downloads/tractography_file_format
  Preparing metadata (setup.py) ... done
Requirement already satisfied: dipy>=1.2.0 in /Users/chrisrorden/miniforge3/lib/python3.9/site-packages (from tractography-file-format==0.0.0) (1.5.0)
Requirement already satisfied: nibabel>=3.0.0 in /Users/chrisrorden/miniforge3/lib/python3.9/site-packages (from tractography-file-format==0.0.0) (3.2.2)
Requirement already satisfied: PyYAML>=5.3.1 in /Users/chrisrorden/miniforge3/lib/python3.9/site-packages (from tractography-file-format==0.0.0) (6.0)
Requirement already satisfied: h5py>=2.8.0 in /Users/chrisrorden/miniforge3/lib/python3.9/site-packages (from dipy>=1.2.0->tractography-file-format==0.0.0) (3.6.0)
Requirement already satisfied: tqdm>=4.30.0 in /Users/chrisrorden/miniforge3/lib/python3.9/site-packages (from dipy>=1.2.0->tractography-file-format==0.0.0) (4.62.3)
Requirement already satisfied: scipy>=1.1 in /Users/chrisrorden/miniforge3/lib/python3.9/site-packages (from dipy>=1.2.0->tractography-file-format==0.0.0) (1.7.3)
Requirement already satisfied: packaging>=14.3 in /Users/chrisrorden/miniforge3/lib/python3.9/site-packages (from nibabel>=3.0.0->tractography-file-format==0.0.0) (21.3)
Requirement already satisfied: numpy>=1.14 in /Users/chrisrorden/miniforge3/lib/python3.9/site-packages (from nibabel>=3.0.0->tractography-file-format==0.0.0) (1.22.2)
Requirement already satisfied: setuptools in /Users/chrisrorden/miniforge3/lib/python3.9/site-packages (from nibabel>=3.0.0->tractography-file-format==0.0.0) (60.5.0)
Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /Users/chrisrorden/miniforge3/lib/python3.9/site-packages (from packaging>=14.3->nibabel>=3.0.0->tractography-file-format==0.0.0) (3.0.7)
Installing collected packages: tractography-file-format
  Attempting uninstall: tractography-file-format
    Found existing installation: tractography-file-format 0.0.0
    Uninstalling tractography-file-format-0.0.0:
      Successfully uninstalled tractography-file-format-0.0.0
  Running setup.py develop for tractography-file-format
Successfully installed tractography-file-format-0.0.0
$ cd scripts
$ python tff_convert_tractogram.py ~/IFOF_L.trk ~/IFOF_L.trx
zsh: segmentation fault  python tff_convert_tractogram.py ~/IFOF_L.trk ~/IFOF_L.trx

@fionaEyoung
Copy link

I attempted to replicate on my M1 MBP and didn't get a segmentation fault.

$ git clone --branch testing_script https://github.com/frheault/tractography_file_format.git
$ pip3 install .
Successfully installed Cython-0.29.28 aiohttp-3.8.1 aiosignal-1.2.0 async-timeout-4.0.2 charset-normalizer-2.0.12 dipy-1.6.0.dev0 frozenlist-1.3.0 fury-0.8.0.post416+g5059a52 multidict-6.0.2 tractography-file-format-0.0.0 vtk-9.1.0 wslink-1.6.1 yarl-1.7.2
$ cd scripts
$ python3 tff_convert_tractogram.py ~/AF_left.trk  ~/test.trx

OS: macOS Big Sur v11.1

@neurolabusc
Copy link
Member Author

I still get the fault. I tried removing all the components you installed.

$ pip3 uninstall Cython aiohttp aiosignal async-timeout charset-normalizer dipy frozenlist fury multidict tractography-file-format vtk wslink yarl
$ git clone --branch testing_script https://github.com/frheault/tractography_file_format.git
$ cd tractography_file_format
$ pip3 install .
$ cd scripts
$ python3 tff_convert_tractogram.py ~/AF_left.trk  ~/test.trx
zsh: segmentation fault  python3 tff_convert_tractogram.py ~/IFOF_L.trk IFO.trx
$sw_vers                                               
ProductName:	macOS
ProductVersion:	11.6.5
BuildVersion:	20G527
$sysctl -n hw.model
MacBookAir10,1

I get the same crash if I attempt to import the library:

> python
Python 3.9.9 | packaged by conda-forge | (main, Dec 20 2021, 02:41:07) 
[Clang 11.1.0 ] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> print('hola')
hola
>>> from tractography_file_format.workflows import convert_tractogram
zsh: segmentation fault  python3

@arokem
Copy link
Collaborator

arokem commented Apr 29, 2022 via email

@neurolabusc
Copy link
Member Author

I was:

$ conda --version
conda 4.12.0
$ conda list
# packages in environment at /Users/chrisrorden/miniforge3:
#
# Name                    Version                   Build  Channel
aiohttp                   3.8.1                    pypi_0    pypi
aiosignal                 1.2.0                    pypi_0    pypi
aom                       3.3.0                h07bb92c_1    conda-forge
appdirs                   1.4.4                    pypi_0    pypi
async-timeout             4.0.2                    pypi_0    pypi
attrs                     21.4.0                   pypi_0    pypi
beautifulsoup4            4.11.1                   pypi_0    pypi
bjdata                    0.3.3                    pypi_0    pypi
blosc                     1.21.0               h9f76cd9_0    conda-forge
brotli                    1.0.9                h1c322ee_7    conda-forge
brotli-bin                1.0.9                h1c322ee_7    conda-forge
brotlipy                  0.7.0           py39h5161555_1003    conda-forge
brunsli                   0.1                  h9f76cd9_0    conda-forge
bvbabel                   0.1.0                    pypi_0    pypi
bzip2                     1.0.8                h3422bc3_4    conda-forge
c-ares                    1.18.1               h3422bc3_0    conda-forge
c-blosc2                  2.0.4                h0095615_1    conda-forge
ca-certificates           2021.10.8            h4653dfc_0    conda-forge
cached-property           1.5.2                hd8ed1ab_1    conda-forge
cached_property           1.5.2              pyha770c72_1    conda-forge
certifi                   2021.10.8        py39h2804cbe_2    conda-forge
cffi                      1.15.0           py39h52b1de0_0    conda-forge
cfitsio                   4.1.0                hd4f5c17_0    conda-forge
charls                    2.3.4                hbdafb3b_0    conda-forge
charset-normalizer        2.0.12                   pypi_0    pypi
cloudpickle               2.0.0              pyhd8ed1ab_0    conda-forge
codespell                 2.1.0                    pypi_0    pypi
colorama                  0.4.4              pyh9f0ad1d_0    conda-forge
commonmark                0.9.1                    pypi_0    pypi
conda                     4.12.0           py39h2804cbe_0    conda-forge
conda-package-handling    1.7.3            py39h5161555_1    conda-forge
cryptography              37.0.1                   pypi_0    pypi
curl                      7.82.0               hb0e6552_0    conda-forge
cycler                    0.10.0                   pypi_0    pypi
cython                    0.29.28                  pypi_0    pypi
cytoolz                   0.11.2           py39hb18efdd_2    conda-forge
dask                      2022.4.1                 pypi_0    pypi
dcmstack                  0.8.0                    pypi_0    pypi
decorator                 5.1.1                    pypi_0    pypi
dicom                     0.9.9.post1              pypi_0    pypi
dicom2nifti               2.3.3                    pypi_0    pypi
dipy                      1.6.0.dev0               pypi_0    pypi
double-conversion         3.2.0                hbdafb3b_0    conda-forge
eigen                     3.4.0                hc021e02_0    conda-forge
euclid                    1.2                      pypi_0    pypi
expat                     2.4.8                h6b3803e_0    conda-forge
ffmpeg                    4.3.2                h38cfed3_3    conda-forge
filelock                  3.6.0                    pypi_0    pypi
fonttools                 4.33.3                   pypi_0    pypi
freetype                  2.10.4               h17b34a0_1    conda-forge
frozenlist                1.3.0                    pypi_0    pypi
fsspec                    2022.3.0           pyhd8ed1ab_0    conda-forge
fury                      0.8.0.post416+g5059a52          pypi_0    pypi
gdown                     4.4.0                    pypi_0    pypi
gettext                   0.19.8.1          h049c9fb_1008    conda-forge
giflib                    5.2.1                h27ca646_2    conda-forge
gl2ps                     1.4.2                h17b34a0_0    conda-forge
glcontext                 2.3.6                    pypi_0    pypi
glew                      2.1.0                h9f76cd9_2    conda-forge
gmp                       6.2.1                h9f76cd9_0    conda-forge
gnutls                    3.6.13               h706517b_1    conda-forge
h5py                      3.6.0           nompi_py39hd982b79_100    conda-forge
hdf4                      4.2.15               h0ef36ac_3    conda-forge
hdf5                      1.12.1          nompi_hf9525e8_104    conda-forge
icu                       70.1                 h6b3803e_0    conda-forge
idna                      3.3                      pypi_0    pypi
imagecodecs               2022.2.22        py39h9494253_1    conda-forge
imageio                   2.13.3                   pypi_0    pypi
jbig                      2.1               h3422bc3_2003    conda-forge
jdata                     0.4.0                    pypi_0    pypi
jinja2                    3.1.2                    pypi_0    pypi
joblib                    1.1.0              pyhd8ed1ab_0    conda-forge
jpeg                      9e                   h3422bc3_0    conda-forge
jsoncpp                   1.9.5                hc021e02_1    conda-forge
jxrlib                    1.1                  h27ca646_2    conda-forge
kiwisolver                1.3.2                    pypi_0    pypi
krb5                      1.19.3               hf9b2bbe_0    conda-forge
lame                      3.100             h27ca646_1001    conda-forge
lcms2                     2.12                 had6a04f_0    conda-forge
lerc                      3.0                  hbdafb3b_0    conda-forge
libaec                    1.0.6                hbdafb3b_0    conda-forge
libavif                   0.9.3                h1c322ee_1    conda-forge
libblas                   3.9.0           12_osxarm64_openblas    conda-forge
libbrotlicommon           1.0.9                h1c322ee_7    conda-forge
libbrotlidec              1.0.9                h1c322ee_7    conda-forge
libbrotlienc              1.0.9                h1c322ee_7    conda-forge
libcblas                  3.9.0           12_osxarm64_openblas    conda-forge
libcurl                   7.82.0               hb0e6552_0    conda-forge
libcxx                    12.0.1               h168391b_1    conda-forge
libdeflate                1.10                 h3422bc3_0    conda-forge
libedit                   3.1.20191231         hc8eb9b7_2    conda-forge
libev                     4.33                 h642e427_1    conda-forge
libffi                    3.4.2                h3422bc3_5    conda-forge
libgfortran               5.0.0.dev0      11_0_1_hf114ba7_23    conda-forge
libgfortran5              11.0.1.dev0         hf114ba7_23    conda-forge
libiconv                  1.16                 h642e427_0    conda-forge
liblapack                 3.9.0           12_osxarm64_openblas    conda-forge
libnetcdf                 4.8.1           nompi_h96a3436_101    conda-forge
libnghttp2                1.47.0               he723fca_0    conda-forge
libogg                    1.3.4                h27ca646_1    conda-forge
libopenblas               0.3.18          openmp_h5dd58f0_0    conda-forge
libpng                    1.6.37               hf7e6567_2    conda-forge
libssh2                   1.10.0               hb80f160_2    conda-forge
libtheora                 1.1.1             h3422bc3_1005    conda-forge
libtiff                   4.3.0                h77dc3b6_3    conda-forge
libvorbis                 1.3.7                h9f76cd9_0    conda-forge
libwebp                   1.2.2                h0d20362_0    conda-forge
libwebp-base              1.2.2                h3422bc3_1    conda-forge
libxcb                    1.13              h9b22ae9_1004    conda-forge
libxml2                   2.9.12               h97d9dda_2    conda-forge
libzip                    1.8.0                h3887732_1    conda-forge
libzlib                   1.2.11            hee7b306_1013    conda-forge
libzopfli                 1.0.3                h9f76cd9_0    conda-forge
llvm-openmp               12.0.1               hf3c4609_1    conda-forge
locket                    1.0.0                    pypi_0    pypi
loguru                    0.6.0            py39h2804cbe_1    conda-forge
lxml                      4.8.0                    pypi_0    pypi
lz4-c                     1.9.3                hbdafb3b_1    conda-forge
markupsafe                2.1.1                    pypi_0    pypi
matplotlib                3.4.3                    pypi_0    pypi
matplotlib-base           3.5.1            py39h5aa4fe7_0    conda-forge
meshio                    5.3.4                    pypi_0    pypi
mne                       1.0.2                    pypi_0    pypi
moderngl                  5.6.4                    pypi_0    pypi
multidict                 6.0.2                    pypi_0    pypi
munkres                   1.1.4              pyh9f0ad1d_0    conda-forge
ncurses                   6.2                  h9aa5885_4    conda-forge
nettle                    3.6                  hc6a1b29_0    conda-forge
networkx                  2.8                      pypi_0    pypi
nibabel                   3.2.1                    pypi_0    pypi
nilearn                   0.9.1                    pypi_0    pypi
numexpr                   2.8.1                    pypi_0    pypi
numpy                     1.22.3                   pypi_0    pypi
numpy-stl                 2.16.3                   pypi_0    pypi
openh264                  2.1.1                habe5f53_0    conda-forge
openjpeg                  2.4.0                h062765e_1    conda-forge
openssl                   1.1.1n               h90dfc92_0    conda-forge
packaging                 21.0                     pypi_0    pypi
pandas                    1.3.2                    pypi_0    pypi
partd                     1.2.0              pyhd8ed1ab_0    conda-forge
patsy                     0.5.2              pyhd8ed1ab_0    conda-forge
pillow                    8.3.2                    pypi_0    pypi
pip                       22.0.4                   pypi_0    pypi
pooch                     1.6.0                    pypi_0    pypi
proj                      8.2.1                h2d984c1_0    conda-forge
pthread-stubs             0.4               h27ca646_1001    conda-forge
pugixml                   1.11.4               hbdafb3b_0    conda-forge
pycosat                   0.6.3           py39h5161555_1009    conda-forge
pycparser                 2.21               pyhd8ed1ab_0    conda-forge
pydicom                   2.3.0                    pypi_0    pypi
pyfqmr                    0.1.1                    pypi_0    pypi
pyglet                    1.5.23                   pypi_0    pypi
pygments                  2.12.0                   pypi_0    pypi
pymesh                    1.0.2                    pypi_0    pypi
pyopenssl                 22.0.0                   pypi_0    pypi
pyparsing                 3.0.8                    pypi_0    pypi
pysocks                   1.7.1            py39h2804cbe_4    conda-forge
pytables                  3.7.0            py39h086b50d_0    conda-forge
python                    3.9.9           h70c1b39_0_cpython    conda-forge
python-dateutil           2.8.2              pyhd8ed1ab_0    conda-forge
python-utils              3.1.0                    pypi_0    pypi
python_abi                3.9                      2_cp39    conda-forge
pytz                      2021.1                   pypi_0    pypi
pywavelets                1.2.0                    pypi_0    pypi
pyyaml                    6.0              py39hb18efdd_4    conda-forge
readline                  8.1                  hedafd6a_0    conda-forge
requests                  2.27.1             pyhd8ed1ab_0    conda-forge
rich                      12.3.0                   pypi_0    pypi
ruamel_yaml               0.15.80         py39h5161555_1006    conda-forge
scikit-image              0.19.0                   pypi_0    pypi
scikit-learn              1.0.2            py39hef7049f_0    conda-forge
scipy                     1.8.0                    pypi_0    pypi
seaborn                   0.11.2                   pypi_0    pypi
setuptools                60.5.0           py39h2804cbe_0    conda-forge
simpleitk                 2.1.1.2                  pypi_0    pypi
six                       1.16.0             pyh6c4a22f_0    conda-forge
snappy                    1.1.8                hc88da5d_3    conda-forge
soupsieve                 2.3.2.post1              pypi_0    pypi
sqlite                    3.37.0               h72a2b83_0    conda-forge
statsmodels               0.13.2           py39h20ef057_0    conda-forge
tbb                       2021.5.0             h3e96240_1    conda-forge
tbb-devel                 2021.5.0             h3e96240_1    conda-forge
threadpoolctl             3.1.0                    pypi_0    pypi
tifffile                  2021.11.2                pypi_0    pypi
tk                        8.6.12               he1e0b03_0    conda-forge
toolz                     0.11.2             pyhd8ed1ab_0    conda-forge
torch                     1.11.0                   pypi_0    pypi
tqdm                      4.64.0                   pypi_0    pypi
trimesh                   3.11.2                   pypi_0    pypi
typing-extensions         4.2.0                    pypi_0    pypi
tzdata                    2021e                he74cb21_0    conda-forge
unicodedata2              14.0.0           py39hb18efdd_1    conda-forge
urllib3                   1.26.9                   pypi_0    pypi
utfcpp                    3.2.1                hce30654_0    conda-forge
vtk                       9.1.0                    pypi_0    pypi
wheel                     0.37.1             pyhd8ed1ab_0    conda-forge
wslink                    1.6.1                    pypi_0    pypi
wxpython                  4.1.1                    pypi_0    pypi
x264                      1!161.3030           h3422bc3_1    conda-forge
xorg-libxau               1.0.9                h27ca646_0    conda-forge
xorg-libxdmcp             1.1.3                h27ca646_0    conda-forge
xz                        5.2.5                h642e427_1    conda-forge
yaml                      0.2.5                h3422bc3_2    conda-forge
yarl                      1.7.2                    pypi_0    pypi
yyjson                    0.3.1                    pypi_0    pypi
zfp                       0.5.5                hcfdfaf5_8    conda-forge
zlib                      1.2.11            hee7b306_1013    conda-forge
zstd                      1.5.2                h861e0a7_0    conda-forge

deactivating condo and attempting to a clean install did not go well:

pip3 install -e .
DEPRECATION: Configuring installation scheme with distutils config files is deprecated and will no longer work in the near future. If you are using a Homebrew or Linuxbrew Python, please see discussion at https://github.com/Homebrew/homebrew-core/issues/76621
Obtaining file:///Users/chrisrorden/Downloads/tractography_file_format
  Preparing metadata (setup.py) ... done
Collecting fury@ git+https://github.com/frheault/fury.git@5059a529#egg=fury
  Cloning https://github.com/frheault/fury.git (to revision 5059a529) to /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-sw_3v8ui/fury_82af4cb13191472cbc8c4364b907d666
  Running command git clone --filter=blob:none --quiet https://github.com/frheault/fury.git /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-sw_3v8ui/fury_82af4cb13191472cbc8c4364b907d666
  WARNING: Did not find branch or tag '5059a529', assuming revision or ref.
  Running command git checkout -q 5059a529
  Resolved https://github.com/frheault/fury.git to commit 5059a529
  Preparing metadata (setup.py) ... done
Collecting dipy@ git+https://github.com/frheault/dipy.git@4e192c5c6#egg=dipy
  Cloning https://github.com/frheault/dipy.git (to revision 4e192c5c6) to /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-sw_3v8ui/dipy_204ef0147cf94966a3dc2123d8da3c95
  Running command git clone --filter=blob:none --quiet https://github.com/frheault/dipy.git /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-sw_3v8ui/dipy_204ef0147cf94966a3dc2123d8da3c95
  WARNING: Did not find branch or tag '4e192c5c6', assuming revision or ref.
  Running command git checkout -q 4e192c5c6
  Resolved https://github.com/frheault/dipy.git to commit 4e192c5c6
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error
  
  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [8 lines of output]
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-sw_3v8ui/dipy_204ef0147cf94966a3dc2123d8da3c95/setup.py", line 34, in <module>
          from cythexts import cyproc_exts, get_pyx_sdist
        File "/private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-sw_3v8ui/dipy_204ef0147cf94966a3dc2123d8da3c95/cythexts.py", line 7, in <module>
          from packaging.version import Version
      ModuleNotFoundError: No module named 'packaging'
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

@frheault
Copy link
Collaborator

@neurolabusc for the clean env there is a ModuleNotFoundError: No module named 'packaging' that can be solved doing a pip install packaging first. This is coming from Dipy and I can't fix that (I don't know how)

When I get out of isolation I will do some testing on a Mac with and without Anancoda and hopefully replicate your error.

@neurolabusc
Copy link
Member Author

It still fails:

pip3 install -e .
DEPRECATION: Configuring installation scheme with distutils config files is deprecated and will no longer work in the near future. If you are using a Homebrew or Linuxbrew Python, please see discussion at https://github.com/Homebrew/homebrew-core/issues/76621
Obtaining file:///Users/chrisrorden/Downloads/tractography_file_format
  Preparing metadata (setup.py) ... done
Collecting fury@ git+https://github.com/frheault/fury.git@5059a529#egg=fury
  Cloning https://github.com/frheault/fury.git (to revision 5059a529) to /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/fury_be8c2ba98456401aade12b83137e594f
  Running command git clone --filter=blob:none --quiet https://github.com/frheault/fury.git /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/fury_be8c2ba98456401aade12b83137e594f
  WARNING: Did not find branch or tag '5059a529', assuming revision or ref.
  Running command git checkout -q 5059a529
  Resolved https://github.com/frheault/fury.git to commit 5059a529
  Preparing metadata (setup.py) ... done
Collecting dipy@ git+https://github.com/frheault/dipy.git@4e192c5c6#egg=dipy
  Cloning https://github.com/frheault/dipy.git (to revision 4e192c5c6) to /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/dipy_6ced980d2e844f4db296afe414d769da
  Running command git clone --filter=blob:none --quiet https://github.com/frheault/dipy.git /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/dipy_6ced980d2e844f4db296afe414d769da
  WARNING: Did not find branch or tag '4e192c5c6', assuming revision or ref.
  Running command git checkout -q 4e192c5c6
  Resolved https://github.com/frheault/dipy.git to commit 4e192c5c6
  Preparing metadata (setup.py) ... done
Collecting gdown>=4.*
  Using cached gdown-4.4.0-py3-none-any.whl
Collecting tqdm
  Using cached tqdm-4.64.0-py2.py3-none-any.whl (78 kB)
Collecting filelock
  Using cached filelock-3.6.0-py3-none-any.whl (10.0 kB)
Collecting beautifulsoup4
  Using cached beautifulsoup4-4.11.1-py3-none-any.whl (128 kB)
Collecting requests[socks]
  Downloading requests-2.27.1-py2.py3-none-any.whl (63 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 63.1/63.1 KB 862.4 kB/s eta 0:00:00
Collecting six
  Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting Cython>=0.29.24
  Using cached Cython-0.29.28-py2.py3-none-any.whl (983 kB)
Collecting scipy>=1.1
  Using cached scipy-1.8.0-cp39-cp39-macosx_11_0_arm64.whl
Collecting nibabel>=3.0.0
  Downloading nibabel-3.2.2-py3-none-any.whl (3.3 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.3/3.3 MB 1.3 MB/s eta 0:00:00
Collecting h5py>=2.8.0
  Using cached h5py-3.6.0.tar.gz (384 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: numpy>=1.15 in /opt/homebrew/lib/python3.9/site-packages (from fury@ git+https://github.com/frheault/fury.git@5059a529#egg=fury->tractography-file-format==0.0.0) (1.22.1)
Collecting vtk>=9.1.0
  Using cached vtk-9.1.0-cp39-cp39-macosx_11_0_arm64.whl (73.4 MB)
Collecting pillow>=5.4.1
  Downloading Pillow-9.1.0-cp39-cp39-macosx_11_0_arm64.whl (2.8 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.8/2.8 MB 1.3 MB/s eta 0:00:00
Requirement already satisfied: packaging>=17.0 in /opt/homebrew/lib/python3.9/site-packages (from fury@ git+https://github.com/frheault/fury.git@5059a529#egg=fury->tractography-file-format==0.0.0) (21.3)
Requirement already satisfied: setuptools in /opt/homebrew/lib/python3.9/site-packages (from fury@ git+https://github.com/frheault/fury.git@5059a529#egg=fury->tractography-file-format==0.0.0) (60.10.0)
Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/homebrew/lib/python3.9/site-packages (from packaging>=17.0->fury@ git+https://github.com/frheault/fury.git@5059a529#egg=fury->tractography-file-format==0.0.0) (3.0.8)
Collecting matplotlib>=2.0.0
  Downloading matplotlib-3.5.1-cp39-cp39-macosx_11_0_arm64.whl (7.2 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.2/7.2 MB 1.1 MB/s eta 0:00:00
Collecting wslink>=1.0.4
  Using cached wslink-1.6.1-py3-none-any.whl (22 kB)
Collecting soupsieve>1.2
  Using cached soupsieve-2.3.2.post1-py3-none-any.whl (37 kB)
Collecting idna<4,>=2.5
  Using cached idna-3.3-py3-none-any.whl (61 kB)
Collecting charset-normalizer~=2.0.0
  Using cached charset_normalizer-2.0.12-py3-none-any.whl (39 kB)
Collecting certifi>=2017.4.17
  Downloading certifi-2021.10.8-py2.py3-none-any.whl (149 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 149.2/149.2 KB 777.0 kB/s eta 0:00:00
Collecting urllib3<1.27,>=1.21.1
  Using cached urllib3-1.26.9-py2.py3-none-any.whl (138 kB)
Collecting PySocks!=1.5.7,>=1.5.6
  Downloading PySocks-1.7.1-py3-none-any.whl (16 kB)
Collecting python-dateutil>=2.7
  Using cached python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
Collecting cycler>=0.10
  Downloading cycler-0.11.0-py3-none-any.whl (6.4 kB)
Collecting kiwisolver>=1.0.1
  Downloading kiwisolver-1.4.2-cp39-cp39-macosx_11_0_arm64.whl (63 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 63.3/63.3 KB 949.1 kB/s eta 0:00:00
Collecting fonttools>=4.22.0
  Using cached fonttools-4.33.3-py3-none-any.whl (930 kB)
Collecting aiohttp
  Using cached aiohttp-3.8.1-cp39-cp39-macosx_11_0_arm64.whl (552 kB)
Collecting attrs>=17.3.0
  Using cached attrs-21.4.0-py2.py3-none-any.whl (60 kB)
Collecting frozenlist>=1.1.1
  Using cached frozenlist-1.3.0-cp39-cp39-macosx_11_0_arm64.whl (34 kB)
Collecting async-timeout<5.0,>=4.0.0a3
  Using cached async_timeout-4.0.2-py3-none-any.whl (5.8 kB)
Collecting yarl<2.0,>=1.0
  Using cached yarl-1.7.2-cp39-cp39-macosx_11_0_arm64.whl (118 kB)
Collecting aiosignal>=1.1.2
  Using cached aiosignal-1.2.0-py3-none-any.whl (8.2 kB)
Collecting multidict<7.0,>=4.5
  Using cached multidict-6.0.2-cp39-cp39-macosx_11_0_arm64.whl (29 kB)
Building wheels for collected packages: dipy, fury, h5py
  Building wheel for dipy (setup.py) ... error
  error: subprocess-exited-with-error
  
  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [425 lines of output]
      /opt/homebrew/lib/python3.9/site-packages/setuptools/dist.py:506: UserWarning: Normalizing '1.6.0dev0' to '1.6.0.dev0'
        warnings.warn(tmpl.format(**locals()))
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.macosx-11-arm64-3.9
      creating build/lib.macosx-11-arm64-3.9/dipy
      copying dipy/conftest.py -> build/lib.macosx-11-arm64-3.9/dipy
      copying dipy/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy
      copying dipy/pkg_info.py -> build/lib.macosx-11-arm64-3.9/dipy
      copying dipy/info.py -> build/lib.macosx-11-arm64-3.9/dipy
      creating build/lib.macosx-11-arm64-3.9/dipy/tests
      copying dipy/tests/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/tests
      copying dipy/tests/scriptrunner.py -> build/lib.macosx-11-arm64-3.9/dipy/tests
      copying dipy/tests/test_scripts.py -> build/lib.macosx-11-arm64-3.9/dipy/tests
      creating build/lib.macosx-11-arm64-3.9/dipy/align
      copying dipy/align/streamlinear.py -> build/lib.macosx-11-arm64-3.9/dipy/align
      copying dipy/align/metrics.py -> build/lib.macosx-11-arm64-3.9/dipy/align
      copying dipy/align/scalespace.py -> build/lib.macosx-11-arm64-3.9/dipy/align
      copying dipy/align/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/align
      copying dipy/align/imaffine.py -> build/lib.macosx-11-arm64-3.9/dipy/align
      copying dipy/align/imwarp.py -> build/lib.macosx-11-arm64-3.9/dipy/align
      copying dipy/align/reslice.py -> build/lib.macosx-11-arm64-3.9/dipy/align
      copying dipy/align/_public.py -> build/lib.macosx-11-arm64-3.9/dipy/align
      creating build/lib.macosx-11-arm64-3.9/dipy/align/tests
      copying dipy/align/tests/test_expectmax.py -> build/lib.macosx-11-arm64-3.9/dipy/align/tests
      copying dipy/align/tests/test_imwarp.py -> build/lib.macosx-11-arm64-3.9/dipy/align/tests
      copying dipy/align/tests/test_metrics.py -> build/lib.macosx-11-arm64-3.9/dipy/align/tests
      copying dipy/align/tests/test_vector_fields.py -> build/lib.macosx-11-arm64-3.9/dipy/align/tests
      copying dipy/align/tests/test_sumsqdiff.py -> build/lib.macosx-11-arm64-3.9/dipy/align/tests
      copying dipy/align/tests/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/align/tests
      copying dipy/align/tests/test_whole_brain_slr.py -> build/lib.macosx-11-arm64-3.9/dipy/align/tests
      copying dipy/align/tests/test_transforms.py -> build/lib.macosx-11-arm64-3.9/dipy/align/tests
      copying dipy/align/tests/test_scalespace.py -> build/lib.macosx-11-arm64-3.9/dipy/align/tests
      copying dipy/align/tests/test_api.py -> build/lib.macosx-11-arm64-3.9/dipy/align/tests
      copying dipy/align/tests/test_streamlinear.py -> build/lib.macosx-11-arm64-3.9/dipy/align/tests
      copying dipy/align/tests/test_imaffine.py -> build/lib.macosx-11-arm64-3.9/dipy/align/tests
      copying dipy/align/tests/test_crosscorr.py -> build/lib.macosx-11-arm64-3.9/dipy/align/tests
      copying dipy/align/tests/test_parzenhist.py -> build/lib.macosx-11-arm64-3.9/dipy/align/tests
      copying dipy/align/tests/test_reslice.py -> build/lib.macosx-11-arm64-3.9/dipy/align/tests
      creating build/lib.macosx-11-arm64-3.9/dipy/core
      copying dipy/core/optimize.py -> build/lib.macosx-11-arm64-3.9/dipy/core
      copying dipy/core/rng.py -> build/lib.macosx-11-arm64-3.9/dipy/core
      copying dipy/core/gradients.py -> build/lib.macosx-11-arm64-3.9/dipy/core
      copying dipy/core/profile.py -> build/lib.macosx-11-arm64-3.9/dipy/core
      copying dipy/core/graph.py -> build/lib.macosx-11-arm64-3.9/dipy/core
      copying dipy/core/subdivide_octahedron.py -> build/lib.macosx-11-arm64-3.9/dipy/core
      copying dipy/core/ndindex.py -> build/lib.macosx-11-arm64-3.9/dipy/core
      copying dipy/core/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/core
      copying dipy/core/wavelet.py -> build/lib.macosx-11-arm64-3.9/dipy/core
      copying dipy/core/geometry.py -> build/lib.macosx-11-arm64-3.9/dipy/core
      copying dipy/core/onetime.py -> build/lib.macosx-11-arm64-3.9/dipy/core
      copying dipy/core/sphere.py -> build/lib.macosx-11-arm64-3.9/dipy/core
      copying dipy/core/histeq.py -> build/lib.macosx-11-arm64-3.9/dipy/core
      copying dipy/core/sphere_stats.py -> build/lib.macosx-11-arm64-3.9/dipy/core
      creating build/lib.macosx-11-arm64-3.9/dipy/core/tests
      copying dipy/core/tests/test_interpolation.py -> build/lib.macosx-11-arm64-3.9/dipy/core/tests
      copying dipy/core/tests/test_rng.py -> build/lib.macosx-11-arm64-3.9/dipy/core/tests
      copying dipy/core/tests/test_ndindex.py -> build/lib.macosx-11-arm64-3.9/dipy/core/tests
      copying dipy/core/tests/test_optimize.py -> build/lib.macosx-11-arm64-3.9/dipy/core/tests
      copying dipy/core/tests/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/core/tests
      copying dipy/core/tests/test_sphere.py -> build/lib.macosx-11-arm64-3.9/dipy/core/tests
      copying dipy/core/tests/test_graph.py -> build/lib.macosx-11-arm64-3.9/dipy/core/tests
      copying dipy/core/tests/test_geometry.py -> build/lib.macosx-11-arm64-3.9/dipy/core/tests
      copying dipy/core/tests/test_gradients.py -> build/lib.macosx-11-arm64-3.9/dipy/core/tests
      copying dipy/core/tests/test_subdivide_octahedron.py -> build/lib.macosx-11-arm64-3.9/dipy/core/tests
      creating build/lib.macosx-11-arm64-3.9/dipy/direction
      copying dipy/direction/peaks.py -> build/lib.macosx-11-arm64-3.9/dipy/direction
      copying dipy/direction/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/direction
      creating build/lib.macosx-11-arm64-3.9/dipy/direction/tests
      copying dipy/direction/tests/test_prob_direction_getter.py -> build/lib.macosx-11-arm64-3.9/dipy/direction/tests
      copying dipy/direction/tests/test_bootstrap_direction_getter.py -> build/lib.macosx-11-arm64-3.9/dipy/direction/tests
      copying dipy/direction/tests/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/direction/tests
      copying dipy/direction/tests/test_peaks.py -> build/lib.macosx-11-arm64-3.9/dipy/direction/tests
      copying dipy/direction/tests/test_pmf.py -> build/lib.macosx-11-arm64-3.9/dipy/direction/tests
      creating build/lib.macosx-11-arm64-3.9/dipy/tracking
      copying dipy/tracking/metrics.py -> build/lib.macosx-11-arm64-3.9/dipy/tracking
      copying dipy/tracking/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/tracking
      copying dipy/tracking/mesh.py -> build/lib.macosx-11-arm64-3.9/dipy/tracking
      copying dipy/tracking/streamline.py -> build/lib.macosx-11-arm64-3.9/dipy/tracking
      copying dipy/tracking/life.py -> build/lib.macosx-11-arm64-3.9/dipy/tracking
      copying dipy/tracking/utils.py -> build/lib.macosx-11-arm64-3.9/dipy/tracking
      copying dipy/tracking/learning.py -> build/lib.macosx-11-arm64-3.9/dipy/tracking
      copying dipy/tracking/local_tracking.py -> build/lib.macosx-11-arm64-3.9/dipy/tracking
      copying dipy/tracking/_utils.py -> build/lib.macosx-11-arm64-3.9/dipy/tracking
      creating build/lib.macosx-11-arm64-3.9/dipy/tracking/tests
      copying dipy/tracking/tests/test_utils.py -> build/lib.macosx-11-arm64-3.9/dipy/tracking/tests
      copying dipy/tracking/tests/test_track_volumes.py -> build/lib.macosx-11-arm64-3.9/dipy/tracking/tests
      copying dipy/tracking/tests/test_metrics.py -> build/lib.macosx-11-arm64-3.9/dipy/tracking/tests
      copying dipy/tracking/tests/test_mesh.py -> build/lib.macosx-11-arm64-3.9/dipy/tracking/tests
      copying dipy/tracking/tests/test_stopping_criterion.py -> build/lib.macosx-11-arm64-3.9/dipy/tracking/tests
      copying dipy/tracking/tests/test_streamline.py -> build/lib.macosx-11-arm64-3.9/dipy/tracking/tests
      copying dipy/tracking/tests/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/tracking/tests
      copying dipy/tracking/tests/test_learning.py -> build/lib.macosx-11-arm64-3.9/dipy/tracking/tests
      copying dipy/tracking/tests/test_distances.py -> build/lib.macosx-11-arm64-3.9/dipy/tracking/tests
      copying dipy/tracking/tests/test_tracking.py -> build/lib.macosx-11-arm64-3.9/dipy/tracking/tests
      copying dipy/tracking/tests/test_life.py -> build/lib.macosx-11-arm64-3.9/dipy/tracking/tests
      copying dipy/tracking/tests/test_fbc.py -> build/lib.macosx-11-arm64-3.9/dipy/tracking/tests
      copying dipy/tracking/tests/test_propagation.py -> build/lib.macosx-11-arm64-3.9/dipy/tracking/tests
      creating build/lib.macosx-11-arm64-3.9/dipy/tracking/benchmarks
      copying dipy/tracking/benchmarks/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/tracking/benchmarks
      copying dipy/tracking/benchmarks/bench_streamline.py -> build/lib.macosx-11-arm64-3.9/dipy/tracking/benchmarks
      creating build/lib.macosx-11-arm64-3.9/dipy/reconst
      copying dipy/reconst/fwdti.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst
      copying dipy/reconst/qtdmri.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst
      copying dipy/reconst/dti.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst
      copying dipy/reconst/shm.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst
      copying dipy/reconst/qti.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst
      copying dipy/reconst/odf.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst
      copying dipy/reconst/forecast.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst
      copying dipy/reconst/mapmri.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst
      copying dipy/reconst/rumba.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst
      copying dipy/reconst/dsi.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst
      copying dipy/reconst/msdki.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst
      copying dipy/reconst/multi_voxel.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst
      copying dipy/reconst/cache.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst
      copying dipy/reconst/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst
      copying dipy/reconst/shore.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst
      copying dipy/reconst/utils.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst
      copying dipy/reconst/mcsd.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst
      copying dipy/reconst/dki_micro.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst
      copying dipy/reconst/csdeconv.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst
      copying dipy/reconst/ivim.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst
      copying dipy/reconst/gqi.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst
      copying dipy/reconst/dki.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst
      copying dipy/reconst/base.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst
      copying dipy/reconst/sfm.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst
      copying dipy/reconst/cross_validation.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst
      creating build/lib.macosx-11-arm64-3.9/dipy/reconst/benchmarks
      copying dipy/reconst/benchmarks/bench_csd.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/benchmarks
      copying dipy/reconst/benchmarks/bench_bounding_box.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/benchmarks
      copying dipy/reconst/benchmarks/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/benchmarks
      copying dipy/reconst/benchmarks/bench_squash.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/benchmarks
      copying dipy/reconst/benchmarks/bench_vec_val_sum.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/benchmarks
      copying dipy/reconst/benchmarks/bench_peaks.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/benchmarks
      creating build/lib.macosx-11-arm64-3.9/dipy/reconst/tests
      copying dipy/reconst/tests/test_dki_micro.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/tests
      copying dipy/reconst/tests/test_utils.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/tests
      copying dipy/reconst/tests/test_multi_voxel.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/tests
      copying dipy/reconst/tests/test_cross_validation.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/tests
      copying dipy/reconst/tests/test_dti.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/tests
      copying dipy/reconst/tests/test_shm.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/tests
      copying dipy/reconst/tests/test_qti.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/tests
      copying dipy/reconst/tests/test_shore_odf.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/tests
      copying dipy/reconst/tests/test_eudx_dg.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/tests
      copying dipy/reconst/tests/test_odf.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/tests
      copying dipy/reconst/tests/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/tests
      copying dipy/reconst/tests/test_forecast.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/tests
      copying dipy/reconst/tests/test_shore_metrics.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/tests
      copying dipy/reconst/tests/test_dsi.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/tests
      copying dipy/reconst/tests/test_reco_utils.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/tests
      copying dipy/reconst/tests/test_fwdti.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/tests
      copying dipy/reconst/tests/test_csdeconv.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/tests
      copying dipy/reconst/tests/test_gqi.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/tests
      copying dipy/reconst/tests/test_qtdmri.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/tests
      copying dipy/reconst/tests/test_mcsd.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/tests
      copying dipy/reconst/tests/test_dki.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/tests
      copying dipy/reconst/tests/test_vec_val_vect.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/tests
      copying dipy/reconst/tests/test_mapmri.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/tests
      copying dipy/reconst/tests/test_sfm.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/tests
      copying dipy/reconst/tests/test_msdki.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/tests
      copying dipy/reconst/tests/test_rumba.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/tests
      copying dipy/reconst/tests/test_peak_finding.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/tests
      copying dipy/reconst/tests/test_dsi_metrics.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/tests
      copying dipy/reconst/tests/test_cache.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/tests
      copying dipy/reconst/tests/test_shore.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/tests
      copying dipy/reconst/tests/test_ivim.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/tests
      copying dipy/reconst/tests/test_dsi_deconv.py -> build/lib.macosx-11-arm64-3.9/dipy/reconst/tests
      creating build/lib.macosx-11-arm64-3.9/dipy/io
      copying dipy/io/peaks.py -> build/lib.macosx-11-arm64-3.9/dipy/io
      copying dipy/io/pickles.py -> build/lib.macosx-11-arm64-3.9/dipy/io
      copying dipy/io/gradients.py -> build/lib.macosx-11-arm64-3.9/dipy/io
      copying dipy/io/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/io
      copying dipy/io/stateful_tractogram.py -> build/lib.macosx-11-arm64-3.9/dipy/io
      copying dipy/io/streamline.py -> build/lib.macosx-11-arm64-3.9/dipy/io
      copying dipy/io/utils.py -> build/lib.macosx-11-arm64-3.9/dipy/io
      copying dipy/io/vtk.py -> build/lib.macosx-11-arm64-3.9/dipy/io
      copying dipy/io/dpy.py -> build/lib.macosx-11-arm64-3.9/dipy/io
      copying dipy/io/bvectxt.py -> build/lib.macosx-11-arm64-3.9/dipy/io
      copying dipy/io/image.py -> build/lib.macosx-11-arm64-3.9/dipy/io
      creating build/lib.macosx-11-arm64-3.9/dipy/io/tests
      copying dipy/io/tests/test_utils.py -> build/lib.macosx-11-arm64-3.9/dipy/io/tests
      copying dipy/io/tests/test_io_gradients.py -> build/lib.macosx-11-arm64-3.9/dipy/io/tests
      copying dipy/io/tests/test_streamline.py -> build/lib.macosx-11-arm64-3.9/dipy/io/tests
      copying dipy/io/tests/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/io/tests
      copying dipy/io/tests/test_io.py -> build/lib.macosx-11-arm64-3.9/dipy/io/tests
      copying dipy/io/tests/test_io_peaks.py -> build/lib.macosx-11-arm64-3.9/dipy/io/tests
      copying dipy/io/tests/test_stateful_tractogram.py -> build/lib.macosx-11-arm64-3.9/dipy/io/tests
      copying dipy/io/tests/test_dpy.py -> build/lib.macosx-11-arm64-3.9/dipy/io/tests
      creating build/lib.macosx-11-arm64-3.9/dipy/viz
      copying dipy/viz/gmem.py -> build/lib.macosx-11-arm64-3.9/dipy/viz
      copying dipy/viz/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/viz
      copying dipy/viz/regtools.py -> build/lib.macosx-11-arm64-3.9/dipy/viz
      copying dipy/viz/app.py -> build/lib.macosx-11-arm64-3.9/dipy/viz
      copying dipy/viz/projections.py -> build/lib.macosx-11-arm64-3.9/dipy/viz
      copying dipy/viz/panel.py -> build/lib.macosx-11-arm64-3.9/dipy/viz
      creating build/lib.macosx-11-arm64-3.9/dipy/viz/tests
      copying dipy/viz/tests/test_apps.py -> build/lib.macosx-11-arm64-3.9/dipy/viz/tests
      copying dipy/viz/tests/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/viz/tests
      copying dipy/viz/tests/test_viz_import.py -> build/lib.macosx-11-arm64-3.9/dipy/viz/tests
      copying dipy/viz/tests/test_fury.py -> build/lib.macosx-11-arm64-3.9/dipy/viz/tests
      copying dipy/viz/tests/test_regtools.py -> build/lib.macosx-11-arm64-3.9/dipy/viz/tests
      creating build/lib.macosx-11-arm64-3.9/dipy/testing
      copying dipy/testing/spherepoints.py -> build/lib.macosx-11-arm64-3.9/dipy/testing
      copying dipy/testing/memory.py -> build/lib.macosx-11-arm64-3.9/dipy/testing
      copying dipy/testing/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/testing
      copying dipy/testing/decorators.py -> build/lib.macosx-11-arm64-3.9/dipy/testing
      creating build/lib.macosx-11-arm64-3.9/dipy/testing/tests
      copying dipy/testing/tests/test_decorators.py -> build/lib.macosx-11-arm64-3.9/dipy/testing/tests
      copying dipy/testing/tests/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/testing/tests
      copying dipy/testing/tests/test_memory.py -> build/lib.macosx-11-arm64-3.9/dipy/testing/tests
      copying dipy/testing/tests/test_testing.py -> build/lib.macosx-11-arm64-3.9/dipy/testing/tests
      creating build/lib.macosx-11-arm64-3.9/dipy/boots
      copying dipy/boots/resampling.py -> build/lib.macosx-11-arm64-3.9/dipy/boots
      copying dipy/boots/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/boots
      creating build/lib.macosx-11-arm64-3.9/dipy/data
      copying dipy/data/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/data
      copying dipy/data/fetcher.py -> build/lib.macosx-11-arm64-3.9/dipy/data
      creating build/lib.macosx-11-arm64-3.9/dipy/data/tests
      copying dipy/data/tests/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/data/tests
      copying dipy/data/tests/test_data.py -> build/lib.macosx-11-arm64-3.9/dipy/data/tests
      copying dipy/data/tests/test_fetcher.py -> build/lib.macosx-11-arm64-3.9/dipy/data/tests
      creating build/lib.macosx-11-arm64-3.9/dipy/utils
      copying dipy/utils/tripwire.py -> build/lib.macosx-11-arm64-3.9/dipy/utils
      copying dipy/utils/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/utils
      copying dipy/utils/optpkg.py -> build/lib.macosx-11-arm64-3.9/dipy/utils
      copying dipy/utils/_importlib.py -> build/lib.macosx-11-arm64-3.9/dipy/utils
      copying dipy/utils/deprecator.py -> build/lib.macosx-11-arm64-3.9/dipy/utils
      copying dipy/utils/parallel.py -> build/lib.macosx-11-arm64-3.9/dipy/utils
      copying dipy/utils/multiproc.py -> build/lib.macosx-11-arm64-3.9/dipy/utils
      copying dipy/utils/arrfuncs.py -> build/lib.macosx-11-arm64-3.9/dipy/utils
      creating build/lib.macosx-11-arm64-3.9/dipy/utils/tests
      copying dipy/utils/tests/test_tripwire.py -> build/lib.macosx-11-arm64-3.9/dipy/utils/tests
      copying dipy/utils/tests/test_deprecator.py -> build/lib.macosx-11-arm64-3.9/dipy/utils/tests
      copying dipy/utils/tests/test_multiproc.py -> build/lib.macosx-11-arm64-3.9/dipy/utils/tests
      copying dipy/utils/tests/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/utils/tests
      copying dipy/utils/tests/test_parallel.py -> build/lib.macosx-11-arm64-3.9/dipy/utils/tests
      copying dipy/utils/tests/test_arrfuncs.py -> build/lib.macosx-11-arm64-3.9/dipy/utils/tests
      copying dipy/utils/tests/test_omp.py -> build/lib.macosx-11-arm64-3.9/dipy/utils/tests
      creating build/lib.macosx-11-arm64-3.9/dipy/segment
      copying dipy/segment/mask.py -> build/lib.macosx-11-arm64-3.9/dipy/segment
      copying dipy/segment/clustering.py -> build/lib.macosx-11-arm64-3.9/dipy/segment
      copying dipy/segment/tissue.py -> build/lib.macosx-11-arm64-3.9/dipy/segment
      copying dipy/segment/bundles.py -> build/lib.macosx-11-arm64-3.9/dipy/segment
      copying dipy/segment/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/segment
      copying dipy/segment/threshold.py -> build/lib.macosx-11-arm64-3.9/dipy/segment
      copying dipy/segment/metric.py -> build/lib.macosx-11-arm64-3.9/dipy/segment
      creating build/lib.macosx-11-arm64-3.9/dipy/segment/benchmarks
      copying dipy/segment/benchmarks/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/segment/benchmarks
      copying dipy/segment/benchmarks/bench_quickbundles.py -> build/lib.macosx-11-arm64-3.9/dipy/segment/benchmarks
      creating build/lib.macosx-11-arm64-3.9/dipy/segment/tests
      copying dipy/segment/tests/test_metric.py -> build/lib.macosx-11-arm64-3.9/dipy/segment/tests
      copying dipy/segment/tests/test_bundles.py -> build/lib.macosx-11-arm64-3.9/dipy/segment/tests
      copying dipy/segment/tests/test_adjustment.py -> build/lib.macosx-11-arm64-3.9/dipy/segment/tests
      copying dipy/segment/tests/test_mask.py -> build/lib.macosx-11-arm64-3.9/dipy/segment/tests
      copying dipy/segment/tests/test_feature.py -> build/lib.macosx-11-arm64-3.9/dipy/segment/tests
      copying dipy/segment/tests/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/segment/tests
      copying dipy/segment/tests/test_quickbundles.py -> build/lib.macosx-11-arm64-3.9/dipy/segment/tests
      copying dipy/segment/tests/test_mrf.py -> build/lib.macosx-11-arm64-3.9/dipy/segment/tests
      copying dipy/segment/tests/test_qbx.py -> build/lib.macosx-11-arm64-3.9/dipy/segment/tests
      copying dipy/segment/tests/test_clustering.py -> build/lib.macosx-11-arm64-3.9/dipy/segment/tests
      creating build/lib.macosx-11-arm64-3.9/dipy/sims
      copying dipy/sims/phantom.py -> build/lib.macosx-11-arm64-3.9/dipy/sims
      copying dipy/sims/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/sims
      copying dipy/sims/voxel.py -> build/lib.macosx-11-arm64-3.9/dipy/sims
      creating build/lib.macosx-11-arm64-3.9/dipy/sims/tests
      copying dipy/sims/tests/test_voxel.py -> build/lib.macosx-11-arm64-3.9/dipy/sims/tests
      copying dipy/sims/tests/test_phantom.py -> build/lib.macosx-11-arm64-3.9/dipy/sims/tests
      copying dipy/sims/tests/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/sims/tests
      creating build/lib.macosx-11-arm64-3.9/dipy/stats
      copying dipy/stats/analysis.py -> build/lib.macosx-11-arm64-3.9/dipy/stats
      copying dipy/stats/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/stats
      creating build/lib.macosx-11-arm64-3.9/dipy/stats/tests
      copying dipy/stats/tests/test_analysis.py -> build/lib.macosx-11-arm64-3.9/dipy/stats/tests
      copying dipy/stats/tests/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/stats/tests
      creating build/lib.macosx-11-arm64-3.9/dipy/denoise
      copying dipy/denoise/non_local_means.py -> build/lib.macosx-11-arm64-3.9/dipy/denoise
      copying dipy/denoise/patch2self.py -> build/lib.macosx-11-arm64-3.9/dipy/denoise
      copying dipy/denoise/localpca.py -> build/lib.macosx-11-arm64-3.9/dipy/denoise
      copying dipy/denoise/noise_estimate.py -> build/lib.macosx-11-arm64-3.9/dipy/denoise
      copying dipy/denoise/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/denoise
      copying dipy/denoise/adaptive_soft_matching.py -> build/lib.macosx-11-arm64-3.9/dipy/denoise
      copying dipy/denoise/gibbs.py -> build/lib.macosx-11-arm64-3.9/dipy/denoise
      copying dipy/denoise/nlmeans.py -> build/lib.macosx-11-arm64-3.9/dipy/denoise
      creating build/lib.macosx-11-arm64-3.9/dipy/denoise/tests
      copying dipy/denoise/tests/test_ascm.py -> build/lib.macosx-11-arm64-3.9/dipy/denoise/tests
      copying dipy/denoise/tests/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/denoise/tests
      copying dipy/denoise/tests/test_noise_estimate.py -> build/lib.macosx-11-arm64-3.9/dipy/denoise/tests
      copying dipy/denoise/tests/test_non_local_means.py -> build/lib.macosx-11-arm64-3.9/dipy/denoise/tests
      copying dipy/denoise/tests/test_nlmeans.py -> build/lib.macosx-11-arm64-3.9/dipy/denoise/tests
      copying dipy/denoise/tests/test_lpca.py -> build/lib.macosx-11-arm64-3.9/dipy/denoise/tests
      copying dipy/denoise/tests/test_kernel.py -> build/lib.macosx-11-arm64-3.9/dipy/denoise/tests
      copying dipy/denoise/tests/test_patch2self.py -> build/lib.macosx-11-arm64-3.9/dipy/denoise/tests
      copying dipy/denoise/tests/test_gibbs.py -> build/lib.macosx-11-arm64-3.9/dipy/denoise/tests
      copying dipy/denoise/tests/test_denoise.py -> build/lib.macosx-11-arm64-3.9/dipy/denoise/tests
      creating build/lib.macosx-11-arm64-3.9/dipy/workflows
      copying dipy/workflows/mask.py -> build/lib.macosx-11-arm64-3.9/dipy/workflows
      copying dipy/workflows/reconst.py -> build/lib.macosx-11-arm64-3.9/dipy/workflows
      copying dipy/workflows/multi_io.py -> build/lib.macosx-11-arm64-3.9/dipy/workflows
      copying dipy/workflows/combined_workflow.py -> build/lib.macosx-11-arm64-3.9/dipy/workflows
      copying dipy/workflows/align.py -> build/lib.macosx-11-arm64-3.9/dipy/workflows
      copying dipy/workflows/io.py -> build/lib.macosx-11-arm64-3.9/dipy/workflows
      copying dipy/workflows/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/workflows
      copying dipy/workflows/flow_runner.py -> build/lib.macosx-11-arm64-3.9/dipy/workflows
      copying dipy/workflows/stats.py -> build/lib.macosx-11-arm64-3.9/dipy/workflows
      copying dipy/workflows/workflow.py -> build/lib.macosx-11-arm64-3.9/dipy/workflows
      copying dipy/workflows/segment.py -> build/lib.macosx-11-arm64-3.9/dipy/workflows
      copying dipy/workflows/denoise.py -> build/lib.macosx-11-arm64-3.9/dipy/workflows
      copying dipy/workflows/viz.py -> build/lib.macosx-11-arm64-3.9/dipy/workflows
      copying dipy/workflows/tracking.py -> build/lib.macosx-11-arm64-3.9/dipy/workflows
      copying dipy/workflows/base.py -> build/lib.macosx-11-arm64-3.9/dipy/workflows
      copying dipy/workflows/docstring_parser.py -> build/lib.macosx-11-arm64-3.9/dipy/workflows
      creating build/lib.macosx-11-arm64-3.9/dipy/workflows/tests
      copying dipy/workflows/tests/test_stats.py -> build/lib.macosx-11-arm64-3.9/dipy/workflows/tests
      copying dipy/workflows/tests/workflow_tests_utils.py -> build/lib.macosx-11-arm64-3.9/dipy/workflows/tests
      copying dipy/workflows/tests/test_docstring_parser.py -> build/lib.macosx-11-arm64-3.9/dipy/workflows/tests
      copying dipy/workflows/tests/test_reconst_ivim.py -> build/lib.macosx-11-arm64-3.9/dipy/workflows/tests
      copying dipy/workflows/tests/test_reconst_dki.py -> build/lib.macosx-11-arm64-3.9/dipy/workflows/tests
      copying dipy/workflows/tests/test_masking.py -> build/lib.macosx-11-arm64-3.9/dipy/workflows/tests
      copying dipy/workflows/tests/test_iap.py -> build/lib.macosx-11-arm64-3.9/dipy/workflows/tests
      copying dipy/workflows/tests/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/workflows/tests
      copying dipy/workflows/tests/test_io.py -> build/lib.macosx-11-arm64-3.9/dipy/workflows/tests
      copying dipy/workflows/tests/test_reconst_dti.py -> build/lib.macosx-11-arm64-3.9/dipy/workflows/tests
      copying dipy/workflows/tests/test_workflow.py -> build/lib.macosx-11-arm64-3.9/dipy/workflows/tests
      copying dipy/workflows/tests/test_tracking.py -> build/lib.macosx-11-arm64-3.9/dipy/workflows/tests
      copying dipy/workflows/tests/test_viz.py -> build/lib.macosx-11-arm64-3.9/dipy/workflows/tests
      copying dipy/workflows/tests/test_align.py -> build/lib.macosx-11-arm64-3.9/dipy/workflows/tests
      copying dipy/workflows/tests/test_reconst_mapmri.py -> build/lib.macosx-11-arm64-3.9/dipy/workflows/tests
      copying dipy/workflows/tests/test_reconst_csa_csd.py -> build/lib.macosx-11-arm64-3.9/dipy/workflows/tests
      copying dipy/workflows/tests/test_segment.py -> build/lib.macosx-11-arm64-3.9/dipy/workflows/tests
      copying dipy/workflows/tests/test_denoise.py -> build/lib.macosx-11-arm64-3.9/dipy/workflows/tests
      creating build/lib.macosx-11-arm64-3.9/dipy/nn
      copying dipy/nn/histo_resdnn.py -> build/lib.macosx-11-arm64-3.9/dipy/nn
      copying dipy/nn/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/nn
      copying dipy/nn/model.py -> build/lib.macosx-11-arm64-3.9/dipy/nn
      creating build/lib.macosx-11-arm64-3.9/dipy/nn/tests
      copying dipy/nn/tests/test_tf.py -> build/lib.macosx-11-arm64-3.9/dipy/nn/tests
      copying dipy/nn/tests/__init__.py -> build/lib.macosx-11-arm64-3.9/dipy/nn/tests
      copying dipy/nn/tests/test_histo_resdnn.py -> build/lib.macosx-11-arm64-3.9/dipy/nn/tests
      creating build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/test_ui_text_block.npz -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/ScannerVectors_GQI101.txt -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/small_64D.bvals.npy -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/aniso_vox.nii.gz -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/55dir_grad.bvec -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/evenly_distributed_sphere_642.npz -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/tdesign45.txt -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/fib1.pkl.gz -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/func_discrete.nii.gz -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/grad_514.txt -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/dsi4169_b_table.txt -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/life_matlab_weights.npy -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/evenly_distributed_sphere_724.npz -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/dipy_colormaps.json -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/EuDX_small_25.trk -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/small_101D.bvec -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/tracks300.trk -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/C.npy -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/life_matlab_rmse.npy -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/small_64D.gradients.npy -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/small_101D.bval -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/gtab_3shell.txt -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/repulsion724.npz -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/small_25.nii.gz -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/55dir_grad.bval -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/test_piesno.nii.gz -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/cb_2.npz -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/gtab_isbi2013_2shell.txt -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/fib2.pkl.gz -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/C3.pkl.gz -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/small_64D.bval -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/func_coef.nii.gz -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/repulsion100.npz -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/small_101D.nii.gz -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/eg_3voxels.pkl -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/C1.pkl.gz -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/evenly_distributed_sphere_362.npz -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/small_64D.nii -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/small_25.bvec -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/t1_coronal_slice.npy -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/fib0.pkl.gz -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/gtab_taiwan_dsi.txt -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/small_64D.bvec -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/S0_10slices.nii.gz -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/record_horizon.log.gz -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/small_25.bval -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/sphere_grad.txt -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/dsi515_b_table.txt -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/repulsion200.npz -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/circle.npy -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      copying dipy/data/files/ascm_out_test.nii.gz -> build/lib.macosx-11-arm64-3.9/dipy/data/files
      running build_ext
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/dipy_6ced980d2e844f4db296afe414d769da/setup.py", line 245, in <module>
          main(**extra_setuptools_args)
        File "/private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/dipy_6ced980d2e844f4db296afe414d769da/setup.py", line 177, in main
          setup(name=info.NAME,
        File "/opt/homebrew/lib/python3.9/site-packages/setuptools/__init__.py", line 155, in setup
          return distutils.core.setup(**attrs)
        File "/opt/homebrew/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 148, in setup
          return run_commands(dist)
        File "/opt/homebrew/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 163, in run_commands
          dist.run_commands()
        File "/opt/homebrew/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 967, in run_commands
          self.run_command(cmd)
        File "/opt/homebrew/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 986, in run_command
          cmd_obj.run()
        File "/opt/homebrew/lib/python3.9/site-packages/wheel/bdist_wheel.py", line 299, in run
          self.run_command('build')
        File "/opt/homebrew/lib/python3.9/site-packages/setuptools/_distutils/cmd.py", line 313, in run_command
          self.distribution.run_command(command)
        File "/opt/homebrew/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 986, in run_command
          cmd_obj.run()
        File "/opt/homebrew/lib/python3.9/site-packages/setuptools/_distutils/command/build.py", line 135, in run
          self.run_command(cmd_name)
        File "/opt/homebrew/lib/python3.9/site-packages/setuptools/_distutils/cmd.py", line 313, in run_command
          self.distribution.run_command(command)
        File "/opt/homebrew/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 986, in run_command
          cmd_obj.run()
        File "/private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/dipy_6ced980d2e844f4db296afe414d769da/cythexts.py", line 14, in run
          raise RuntimeError(msg)
      RuntimeError: Need cython>=0.29.24 to build extensions but cannot import "Cython"
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for dipy
  Running setup.py clean for dipy
  Building wheel for fury (setup.py) ... done
  Created wheel for fury: filename=fury-0.8.0.post416+g5059a52-py3-none-any.whl size=380600 sha256=e361e2757150039bf449b5e4c43d1bd6700aa61f637bf4cae99b7071b4185618
  Stored in directory: /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-ephem-wheel-cache-y81j8slb/wheels/1f/59/cb/927f9ac22ab4ca5bbb7d091fd9395f820ebc66d84a81829df1
  Building wheel for h5py (pyproject.toml) ... error
  error: subprocess-exited-with-error
  
  × Building wheel for h5py (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [124 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.macosx-11-arm64-3.9
      creating build/lib.macosx-11-arm64-3.9/h5py
      copying h5py/h5py_warnings.py -> build/lib.macosx-11-arm64-3.9/h5py
      copying h5py/version.py -> build/lib.macosx-11-arm64-3.9/h5py
      copying h5py/__init__.py -> build/lib.macosx-11-arm64-3.9/h5py
      copying h5py/ipy_completer.py -> build/lib.macosx-11-arm64-3.9/h5py
      creating build/lib.macosx-11-arm64-3.9/h5py/_hl
      copying h5py/_hl/files.py -> build/lib.macosx-11-arm64-3.9/h5py/_hl
      copying h5py/_hl/compat.py -> build/lib.macosx-11-arm64-3.9/h5py/_hl
      copying h5py/_hl/__init__.py -> build/lib.macosx-11-arm64-3.9/h5py/_hl
      copying h5py/_hl/selections.py -> build/lib.macosx-11-arm64-3.9/h5py/_hl
      copying h5py/_hl/dataset.py -> build/lib.macosx-11-arm64-3.9/h5py/_hl
      copying h5py/_hl/vds.py -> build/lib.macosx-11-arm64-3.9/h5py/_hl
      copying h5py/_hl/selections2.py -> build/lib.macosx-11-arm64-3.9/h5py/_hl
      copying h5py/_hl/group.py -> build/lib.macosx-11-arm64-3.9/h5py/_hl
      copying h5py/_hl/datatype.py -> build/lib.macosx-11-arm64-3.9/h5py/_hl
      copying h5py/_hl/attrs.py -> build/lib.macosx-11-arm64-3.9/h5py/_hl
      copying h5py/_hl/dims.py -> build/lib.macosx-11-arm64-3.9/h5py/_hl
      copying h5py/_hl/base.py -> build/lib.macosx-11-arm64-3.9/h5py/_hl
      copying h5py/_hl/filters.py -> build/lib.macosx-11-arm64-3.9/h5py/_hl
      creating build/lib.macosx-11-arm64-3.9/h5py/tests
      copying h5py/tests/test_dimension_scales.py -> build/lib.macosx-11-arm64-3.9/h5py/tests
      copying h5py/tests/test_attribute_create.py -> build/lib.macosx-11-arm64-3.9/h5py/tests
      copying h5py/tests/test_file_image.py -> build/lib.macosx-11-arm64-3.9/h5py/tests
      copying h5py/tests/conftest.py -> build/lib.macosx-11-arm64-3.9/h5py/tests
      copying h5py/tests/test_h5d_direct_chunk.py -> build/lib.macosx-11-arm64-3.9/h5py/tests
      copying h5py/tests/test_h5f.py -> build/lib.macosx-11-arm64-3.9/h5py/tests
      copying h5py/tests/test_dataset_getitem.py -> build/lib.macosx-11-arm64-3.9/h5py/tests
      copying h5py/tests/test_group.py -> build/lib.macosx-11-arm64-3.9/h5py/tests
      copying h5py/tests/test_errors.py -> build/lib.macosx-11-arm64-3.9/h5py/tests
      copying h5py/tests/test_dataset_swmr.py -> build/lib.macosx-11-arm64-3.9/h5py/tests
      copying h5py/tests/test_slicing.py -> build/lib.macosx-11-arm64-3.9/h5py/tests
      copying h5py/tests/test_h5pl.py -> build/lib.macosx-11-arm64-3.9/h5py/tests
      copying h5py/tests/test_attrs.py -> build/lib.macosx-11-arm64-3.9/h5py/tests
      copying h5py/tests/__init__.py -> build/lib.macosx-11-arm64-3.9/h5py/tests
      copying h5py/tests/test_attrs_data.py -> build/lib.macosx-11-arm64-3.9/h5py/tests
      copying h5py/tests/test_h5t.py -> build/lib.macosx-11-arm64-3.9/h5py/tests
      copying h5py/tests/test_big_endian_file.py -> build/lib.macosx-11-arm64-3.9/h5py/tests
      copying h5py/tests/test_h5p.py -> build/lib.macosx-11-arm64-3.9/h5py/tests
      copying h5py/tests/test_dims_dimensionproxy.py -> build/lib.macosx-11-arm64-3.9/h5py/tests
      copying h5py/tests/test_h5o.py -> build/lib.macosx-11-arm64-3.9/h5py/tests
      copying h5py/tests/test_datatype.py -> build/lib.macosx-11-arm64-3.9/h5py/tests
      copying h5py/tests/common.py -> build/lib.macosx-11-arm64-3.9/h5py/tests
      copying h5py/tests/test_dataset.py -> build/lib.macosx-11-arm64-3.9/h5py/tests
      copying h5py/tests/test_file.py -> build/lib.macosx-11-arm64-3.9/h5py/tests
      copying h5py/tests/test_selections.py -> build/lib.macosx-11-arm64-3.9/h5py/tests
      copying h5py/tests/test_dtype.py -> build/lib.macosx-11-arm64-3.9/h5py/tests
      copying h5py/tests/test_h5.py -> build/lib.macosx-11-arm64-3.9/h5py/tests
      copying h5py/tests/test_file2.py -> build/lib.macosx-11-arm64-3.9/h5py/tests
      copying h5py/tests/test_completions.py -> build/lib.macosx-11-arm64-3.9/h5py/tests
      copying h5py/tests/test_filters.py -> build/lib.macosx-11-arm64-3.9/h5py/tests
      copying h5py/tests/test_base.py -> build/lib.macosx-11-arm64-3.9/h5py/tests
      copying h5py/tests/test_objects.py -> build/lib.macosx-11-arm64-3.9/h5py/tests
      creating build/lib.macosx-11-arm64-3.9/h5py/tests/data_files
      copying h5py/tests/data_files/__init__.py -> build/lib.macosx-11-arm64-3.9/h5py/tests/data_files
      creating build/lib.macosx-11-arm64-3.9/h5py/tests/test_vds
      copying h5py/tests/test_vds/test_highlevel_vds.py -> build/lib.macosx-11-arm64-3.9/h5py/tests/test_vds
      copying h5py/tests/test_vds/test_virtual_source.py -> build/lib.macosx-11-arm64-3.9/h5py/tests/test_vds
      copying h5py/tests/test_vds/__init__.py -> build/lib.macosx-11-arm64-3.9/h5py/tests/test_vds
      copying h5py/tests/test_vds/test_lowlevel_vds.py -> build/lib.macosx-11-arm64-3.9/h5py/tests/test_vds
      copying h5py/tests/data_files/vlen_string_s390x.h5 -> build/lib.macosx-11-arm64-3.9/h5py/tests/data_files
      copying h5py/tests/data_files/vlen_string_dset_utc.h5 -> build/lib.macosx-11-arm64-3.9/h5py/tests/data_files
      copying h5py/tests/data_files/vlen_string_dset.h5 -> build/lib.macosx-11-arm64-3.9/h5py/tests/data_files
      running build_ext
      Loading library to get build settings and version: libhdf5.dylib
      ********************************************************************************
                             Summary of the h5py configuration
      
      HDF5 include dirs: []
      HDF5 library dirs: []
           HDF5 Version: (1, 12, 1)
            MPI Enabled: False
       ROS3 VFD Enabled: False
       Rebuild Required: True
      
      ********************************************************************************
      Executing api_gen rebuild of defs
      Executing cythonize()
      [ 1/24] Cythonizing /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/h5py_f4018f9caa414bfd84ce03de4ad6736d/h5py/_conv.pyx
      [ 2/24] Cythonizing /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/h5py_f4018f9caa414bfd84ce03de4ad6736d/h5py/_errors.pyx
      [ 3/24] Cythonizing /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/h5py_f4018f9caa414bfd84ce03de4ad6736d/h5py/_objects.pyx
      [ 4/24] Cythonizing /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/h5py_f4018f9caa414bfd84ce03de4ad6736d/h5py/_proxy.pyx
      [ 5/24] Cythonizing /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/h5py_f4018f9caa414bfd84ce03de4ad6736d/h5py/_selector.pyx
      [ 6/24] Cythonizing /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/h5py_f4018f9caa414bfd84ce03de4ad6736d/h5py/defs.pyx
      [ 7/24] Cythonizing /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/h5py_f4018f9caa414bfd84ce03de4ad6736d/h5py/h5.pyx
      [ 8/24] Cythonizing /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/h5py_f4018f9caa414bfd84ce03de4ad6736d/h5py/h5a.pyx
      [ 9/24] Cythonizing /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/h5py_f4018f9caa414bfd84ce03de4ad6736d/h5py/h5ac.pyx
      [10/24] Cythonizing /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/h5py_f4018f9caa414bfd84ce03de4ad6736d/h5py/h5d.pyx
      [11/24] Cythonizing /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/h5py_f4018f9caa414bfd84ce03de4ad6736d/h5py/h5ds.pyx
      [12/24] Cythonizing /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/h5py_f4018f9caa414bfd84ce03de4ad6736d/h5py/h5f.pyx
      [13/24] Cythonizing /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/h5py_f4018f9caa414bfd84ce03de4ad6736d/h5py/h5fd.pyx
      [14/24] Cythonizing /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/h5py_f4018f9caa414bfd84ce03de4ad6736d/h5py/h5g.pyx
      [15/24] Cythonizing /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/h5py_f4018f9caa414bfd84ce03de4ad6736d/h5py/h5i.pyx
      [16/24] Cythonizing /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/h5py_f4018f9caa414bfd84ce03de4ad6736d/h5py/h5l.pyx
      [17/24] Cythonizing /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/h5py_f4018f9caa414bfd84ce03de4ad6736d/h5py/h5o.pyx
      [18/24] Cythonizing /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/h5py_f4018f9caa414bfd84ce03de4ad6736d/h5py/h5p.pyx
      [19/24] Cythonizing /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/h5py_f4018f9caa414bfd84ce03de4ad6736d/h5py/h5pl.pyx
      [20/24] Cythonizing /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/h5py_f4018f9caa414bfd84ce03de4ad6736d/h5py/h5r.pyx
      [21/24] Cythonizing /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/h5py_f4018f9caa414bfd84ce03de4ad6736d/h5py/h5s.pyx
      [22/24] Cythonizing /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/h5py_f4018f9caa414bfd84ce03de4ad6736d/h5py/h5t.pyx
      [23/24] Cythonizing /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/h5py_f4018f9caa414bfd84ce03de4ad6736d/h5py/h5z.pyx
      [24/24] Cythonizing /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/h5py_f4018f9caa414bfd84ce03de4ad6736d/h5py/utils.pyx
      building 'h5py.defs' extension
      creating build/temp.macosx-11-arm64-3.9
      creating build/temp.macosx-11-arm64-3.9/private
      creating build/temp.macosx-11-arm64-3.9/private/var
      creating build/temp.macosx-11-arm64-3.9/private/var/folders
      creating build/temp.macosx-11-arm64-3.9/private/var/folders/4p
      creating build/temp.macosx-11-arm64-3.9/private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn
      creating build/temp.macosx-11-arm64-3.9/private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T
      creating build/temp.macosx-11-arm64-3.9/private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx
      creating build/temp.macosx-11-arm64-3.9/private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/h5py_f4018f9caa414bfd84ce03de4ad6736d
      creating build/temp.macosx-11-arm64-3.9/private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/h5py_f4018f9caa414bfd84ce03de4ad6736d/h5py
      clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk -DH5_USE_18_API -DNPY_NO_DEPRECATED_API=0 -I./h5py -I/private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/h5py_f4018f9caa414bfd84ce03de4ad6736d/lzf -I/private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/h5py_f4018f9caa414bfd84ce03de4ad6736d/lzf/lzf -I/opt/homebrew/Cellar/python@3.9/3.9.12/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/numpy/core/include -I/opt/homebrew/Cellar/python@3.9/3.9.12/Frameworks/Python.framework/Versions/3.9/include/python3.9 -c /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/h5py_f4018f9caa414bfd84ce03de4ad6736d/h5py/defs.c -o build/temp.macosx-11-arm64-3.9/private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/h5py_f4018f9caa414bfd84ce03de4ad6736d/h5py/defs.o
      In file included from /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-gaj2h2vx/h5py_f4018f9caa414bfd84ce03de4ad6736d/h5py/defs.c:740:
      ./h5py/api_compat.h:27:10: fatal error: 'hdf5.h' file not found
      #include "hdf5.h"
               ^~~~~~~~
      1 error generated.
      error: command '/usr/bin/clang' failed with exit code 1
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for h5py
Successfully built fury
Failed to build dipy h5py
ERROR: Could not build wheels for h5py, which is required to install pyproject.toml-based projects

@frheault
Copy link
Collaborator

frheault commented Apr 29, 2022

I don't own a Mac, so I don't know why and partially remember, but I once solved that with brew install hdf5

The underlying error of the segfault will be hard to identify.
There is an import from the viz module, which means VTK. I am 90% sure it's from VTK or something related to graphics.

EDIT: When I get my hands on a Mac Monday, I will note what I did from scratch and write it in the README.md
Having a Windows, Mac, and Linux installation will be useful.

@fionaEyoung
Copy link

I once solved that with brew install hdf5

This sounds very familiar. I also had huge issues getting dipy installed on my M1, that eventually was at least part of the solution.

I don't use anaconda, I use homebrew python.

@neurolabusc
Copy link
Member Author

I was able to get pip3 install -e . to install cleanly without conda after getting hdf5 installed using this kludge since the default brew command failed. Now I am getting the following errors:

python3 ./tff_convert_tractogram.py ~/IFOF_L.trk ~/IFOF.trx
Traceback (most recent call last):
  File "/Users/chrisrorden/Downloads/tractography_file_format/scripts/./tff_convert_tractogram.py", line 14, in <module>
    from tractography_file_format.workflows import convert_tractogram
  File "/Users/chrisrorden/Downloads/tractography_file_format/tractography_file_format/__init__.py", line 2, in <module>
    from .utils import *
  File "/Users/chrisrorden/Downloads/tractography_file_format/tractography_file_format/utils.py", line 8, in <module>
    from dipy.io.stateful_tractogram import StatefulTractogram
  File "/opt/homebrew/lib/python3.9/site-packages/dipy/io/__init__.py", line 5, in <module>
    from .bvectxt import (read_bvec_file, ornt_mapping, reorient_vectors,
  File "/opt/homebrew/lib/python3.9/site-packages/dipy/io/bvectxt.py", line 5, in <module>
    from dipy.core import gradients
  File "/opt/homebrew/lib/python3.9/site-packages/dipy/core/gradients.py", line 5, in <module>
    from scipy.linalg import inv, polar
  File "/opt/homebrew/lib/python3.9/site-packages/scipy/linalg/__init__.py", line 198, in <module>
    from ._misc import *
  File "/opt/homebrew/lib/python3.9/site-packages/scipy/linalg/_misc.py", line 3, in <module>
    from .blas import get_blas_funcs
  File "/opt/homebrew/lib/python3.9/site-packages/scipy/linalg/blas.py", line 213, in <module>
    from scipy.linalg import _fblas
ImportError: dlopen(/opt/homebrew/lib/python3.9/site-packages/scipy/linalg/_fblas.cpython-39-darwin.so, 2): Library not loaded: @rpath/libopenblas.0.dylib
  Referenced from: /opt/homebrew/lib/python3.9/site-packages/scipy/linalg/_fblas.cpython-39-darwin.so
  Reason: image not found

Is there a way to get the functionality without all of these dependencies? Now that I have attempted to install via both conda and non-conda my system hard disk shows it getting filled with all things Python.

@frheault
Copy link
Collaborator

frheault commented Apr 30, 2022

Dipy and Nibabel and VTK are required for the scripts and the utilities, so there no way around it.

You probably need brew install openblas lapack now.

Conda probably installed all of that (and a lot more), but it's weird Conda didn't work as it was.

I'm sorry I don't have a recipe for you, I'm not a Mac user and I don't know what's going on with Conda.

@fionaEyoung Is there something special about M1?

@neurolabusc
Copy link
Member Author

Does not look

brew reinstall openblas lapack
==> Downloading https://ghcr.io/v2/homebrew/core/openblas/manifests/0.3.20
Already downloaded: /Users/chrisrorden/Library/Caches/Homebrew/downloads/f2d61ce797d723fc51e0172f9f30e3454c38301e0ac094222ca5fa081f5cd2d3--openblas-0.3.20.bottle_manifest.json
==> Downloading https://ghcr.io/v2/homebrew/core/openblas/blobs/sha256:a08b76f9d
Already downloaded: /Users/chrisrorden/Library/Caches/Homebrew/downloads/485cd15a9b761c24206551fc8e2c254103951bc055fdf84d9660a8fc61657f49--openblas--0.3.20.arm64_big_sur.bottle.tar.gz
==> Reinstalling openblas 
==> Pouring openblas--0.3.20.arm64_big_sur.bottle.tar.gz
🍺  /opt/homebrew/Cellar/openblas/0.3.20: 23 files, 56.1MB
==> Running `brew cleanup openblas`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
==> Downloading https://ghcr.io/v2/homebrew/core/lapack/manifests/3.10.1
Already downloaded: /Users/chrisrorden/Library/Caches/Homebrew/downloads/7995608582d3d85c4bf4da5932b7ae698598deb9a20123dc81db6c7a0ddcad5f--lapack-3.10.1.bottle_manifest.json
==> Downloading https://ghcr.io/v2/homebrew/core/lapack/blobs/sha256:fcba5f25c50
Already downloaded: /Users/chrisrorden/Library/Caches/Homebrew/downloads/5043664b594fd0689ad4bbd2a6cc8f74ac6ad7d06193809ea0222d3ed1d04472--lapack--3.10.1.arm64_big_sur.bottle.tar.gz
==> Reinstalling lapack 
==> Pouring lapack--3.10.1.arm64_big_sur.bottle.tar.gz
==> Caveats
lapack is keg-only, which means it was not symlinked into /opt/homebrew,
because macOS provides LAPACK in Accelerate.framework.

For compilers to find lapack you may need to set:
  export LDFLAGS="-L/opt/homebrew/opt/lapack/lib"
  export CPPFLAGS="-I/opt/homebrew/opt/lapack/include"

For pkg-config to find lapack you may need to set:
  export PKG_CONFIG_PATH="/opt/homebrew/opt/lapack/lib/pkgconfig"

==> Summary
🍺  /opt/homebrew/Cellar/lapack/3.10.1: 29 files, 8.9MB
==> Running `brew cleanup lapack`...
==> Caveats
==> lapack
lapack is keg-only, which means it was not symlinked into /opt/homebrew,
because macOS provides LAPACK in Accelerate.framework.

For compilers to find lapack you may need to set:
  export LDFLAGS="-L/opt/homebrew/opt/lapack/lib"
  export CPPFLAGS="-I/opt/homebrew/opt/lapack/include"

For pkg-config to find lapack you may need to set:
  export PKG_CONFIG_PATH="/opt/homebrew/opt/lapack/lib/pkgconfig"

scripts > python3 ./tff_convert_tractogram.py ~/IFOF_L.trk ~/IFO.trx
Traceback (most recent call last):
  File "/Users/chrisrorden/Downloads/tractography_file_format/scripts/./tff_convert_tractogram.py", line 14, in <module>
    from tractography_file_format.workflows import convert_tractogram
  File "/Users/chrisrorden/Downloads/tractography_file_format/tractography_file_format/__init__.py", line 2, in <module>
    from .utils import *
  File "/Users/chrisrorden/Downloads/tractography_file_format/tractography_file_format/utils.py", line 8, in <module>
    from dipy.io.stateful_tractogram import StatefulTractogram
  File "/opt/homebrew/lib/python3.9/site-packages/dipy/io/__init__.py", line 5, in <module>
    from .bvectxt import (read_bvec_file, ornt_mapping, reorient_vectors,
  File "/opt/homebrew/lib/python3.9/site-packages/dipy/io/bvectxt.py", line 5, in <module>
    from dipy.core import gradients
  File "/opt/homebrew/lib/python3.9/site-packages/dipy/core/gradients.py", line 5, in <module>
    from scipy.linalg import inv, polar
  File "/opt/homebrew/lib/python3.9/site-packages/scipy/linalg/__init__.py", line 198, in <module>
    from ._misc import *
  File "/opt/homebrew/lib/python3.9/site-packages/scipy/linalg/_misc.py", line 3, in <module>
    from .blas import get_blas_funcs
  File "/opt/homebrew/lib/python3.9/site-packages/scipy/linalg/blas.py", line 213, in <module>
    from scipy.linalg import _fblas
ImportError: dlopen(/opt/homebrew/lib/python3.9/site-packages/scipy/linalg/_fblas.cpython-39-darwin.so, 2): Library not loaded: @rpath/libopenblas.0.dylib
  Referenced from: /opt/homebrew/lib/python3.9/site-packages/scipy/linalg/_fblas.cpython-39-darwin.so
  Reason: image not found

@frheault
Copy link
Collaborator

frheault commented May 2, 2022

@arokem Do you have an idea?
This all comes from Dipy, is it Python3.9? M1 CPU? Is it the way I fetch a specific branch of Dipy in the setup.py

@skoudoro
Copy link

skoudoro commented May 2, 2022

We do not provide wheels or tried with ARM64 yet for DIPY.

So, on macOS, I recommend using Rosetta for now (the x86_64 emulator). we need to check if all DIPY dependencies work with ARM64 which seems to not be the case now.

I did not follow the thread above so I am not sure if homebrew or conda is using the rosetta environment or ARM64 environment.

Also, do not forget that OpenGL "is not working" on the ARM64 architecture of the mac M1, you need to use the rosetta environment. VTK works only in the rosetta environment. They did not integrate vulkan/moltenvk and it will take quite some time for them to do it. This implies that the VTK reader can be problematic for quite a long time if you do not implement your own.

@frheault
Copy link
Collaborator

frheault commented May 2, 2022

Well, this seems to explain why everything is breaking, thank you for the information. I had no idea there were so many underlying issues!

@fionaEyoung
Copy link

@neurolabusc does this help?

@neurolabusc neurolabusc changed the title Segmentation fault Segmentation fault for Apple Silicon M1 CPU May 25, 2022
@neurolabusc
Copy link
Member Author

@skoudoro thanks for all your insightful comments. I do want to take issue with your comment OpenGL "is not working" on the ARM64 architecture of the mac M1. You can try out the M1 builds of MRIcroGL and Surfice and see that Apple's OpenGL drivers for the M1 provide excellent performance. Indeed, I can compile MRIcroGL for either Metal API or OpenGL, and have chosen OpenGL since the performance is just as good. Apple's M1 OpenGL driver appears to be an abstraction to Metal. I have only discovered a couple of edge cases where OpenGL features do not have a Metal equivalent.

@neurolabusc
Copy link
Member Author

I wonder if the DIPY developers could revisit this issue.

@arokem
Copy link
Collaborator

arokem commented Jun 23, 2022

  • Homebrew supports native VTK 9.1.

Does this mean that Mac-bound DIPY users would have to install VTK with homebrew for DIPY to work? That might cause some environment messes (e.g., for conda users), no?

@skoudoro
Copy link

Thank you for pinging us @neurolabusc. I will look into it today or tomorrow.

it seems that our core dependencies (h5py, NumPy, scipy) and some optional dependencies (like VTK) have a wheel on PyPI for native support of macOS with python 3.9.

For some of them, the wheels are missing for python 3.10 so it will work only on python 3.9 for now.

So the goal is to check if all the tests passed with the current version of DIPY and arm64.

  • if yes, I will create a wheel, today or tomorrow with the current version
  • if not, we will fix it and these changes will appear in the next release (mid-july).

@skoudoro
Copy link

skoudoro commented Jun 24, 2022

dipy-1.5.0-cp39-cp39-macosx_11_0_arm64.whl and dipy-1.5.0-cp39-cp39-macosx_10_9_universal2.whl have been created as you can see here

it should now work now natively on mac M1 with python 3.9. I do not have this machine so can you try it and give us an update @neurolabusc? (VTK should work also with pip install vtk)

Thanks!

@neurolabusc
Copy link
Member Author

Any ideas?

$ python3 --version
Python 3.9.9
$ git clone --branch testing_script https://github.com/frheault/tractography_file_format.git
$ cd tractography_file_format 
$ pip3 install -e .
Obtaining file:///Users/chrisrorden/src/tractography_file_format
  Preparing metadata (setup.py) ... done
Collecting fury@ git+https://github.com/frheault/fury.git@5059a529#egg=fury
  Cloning https://github.com/frheault/fury.git (to revision 5059a529) to /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-6txnxi8f/fury_9d902ee9c4a2496ba0234eb19a77f02b
  Running command git clone --filter=blob:none --quiet https://github.com/frheault/fury.git /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-6txnxi8f/fury_9d902ee9c4a2496ba0234eb19a77f02b
  WARNING: Did not find branch or tag '5059a529', assuming revision or ref.
  Running command git checkout -q 5059a529
  Resolved https://github.com/frheault/fury.git to commit 5059a529
  Preparing metadata (setup.py) ... done
Collecting dipy@ git+https://github.com/frheault/dipy.git@4e192c5c6#egg=dipy
  Cloning https://github.com/frheault/dipy.git (to revision 4e192c5c6) to /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-6txnxi8f/dipy_b1f71c0acf9a486ca7be04f8ad391233
  Running command git clone --filter=blob:none --quiet https://github.com/frheault/dipy.git /private/var/folders/4p/cxb1ys0s4wz6dh3rtj22pq8w0000gn/T/pip-install-6txnxi8f/dipy_b1f71c0acf9a486ca7be04f8ad391233
  WARNING: Did not find branch or tag '4e192c5c6', assuming revision or ref.
  Running command git checkout -q 4e192c5c6
  fatal: unable to access 'https://github.com/frheault/dipy.git/': LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443
  Resolved https://github.com/frheault/dipy.git to commit 4e192c5c6
  Preparing metadata (setup.py) ... done
Requirement already satisfied: gdown>=4.* in /Users/chrisrorden/miniforge3/lib/python3.9/site-packages (from tractography-file-format==0.0.0) (4.4.0)
Requirement already satisfied: six in /Users/chrisrorden/miniforge3/lib/python3.9/site-packages (from gdown>=4.*->tractography-file-format==0.0.0) (1.16.0)
Requirement already satisfied: requests[socks] in /Users/chrisrorden/miniforge3/lib/python3.9/site-packages (from gdown>=4.*->tractography-file-format==0.0.0) (2.27.1)
Requirement already satisfied: beautifulsoup4 in /Users/chrisrorden/miniforge3/lib/python3.9/site-packages (from gdown>=4.*->tractography-file-format==0.0.0) (4.11.1)
Requirement already satisfied: filelock in /Users/chrisrorden/miniforge3/lib/python3.9/site-packages (from gdown>=4.*->tractography-file-format==0.0.0) (3.6.0)
Requirement already satisfied: tqdm in /Users/chrisrorden/miniforge3/lib/python3.9/site-packages (from gdown>=4.*->tractography-file-format==0.0.0) (4.64.0)
Requirement already satisfied: nibabel>=3.0.0 in /Users/chrisrorden/miniforge3/lib/python3.9/site-packages (from dipy@ git+https://github.com/frheault/dipy.git@4e192c5c6#egg=dipy->tractography-file-format==0.0.0) (3.2.2)
Requirement already satisfied: h5py>=2.8.0 in /Users/chrisrorden/miniforge3/lib/python3.9/site-packages (from dipy@ git+https://github.com/frheault/dipy.git@4e192c5c6#egg=dipy->tractography-file-format==0.0.0) (3.6.0)
Requirement already satisfied: numpy>=1.15 in /Users/chrisrorden/miniforge3/lib/python3.9/site-packages (from fury@ git+https://github.com/frheault/fury.git@5059a529#egg=fury->tractography-file-format==0.0.0) (1.23.0)
Requirement already satisfied: scipy>=1.0 in /Users/chrisrorden/miniforge3/lib/python3.9/site-packages (from fury@ git+https://github.com/frheault/fury.git@5059a529#egg=fury->tractography-file-format==0.0.0) (1.8.0)
Requirement already satisfied: vtk>=9.1.0 in /Users/chrisrorden/miniforge3/lib/python3.9/site-packages (from fury@ git+https://github.com/frheault/fury.git@5059a529#egg=fury->tractography-file-format==0.0.0) (9.1.0)
Requirement already satisfied: pillow>=5.4.1 in /Users/chrisrorden/miniforge3/lib/python3.9/site-packages (from fury@ git+https://github.com/frheault/fury.git@5059a529#egg=fury->tractography-file-format==0.0.0) (9.1.0)
Requirement already satisfied: packaging>=17.0 in /Users/chrisrorden/miniforge3/lib/python3.9/site-packages (from fury@ git+https://github.com/frheault/fury.git@5059a529#egg=fury->tractography-file-format==0.0.0) (21.3)
Requirement already satisfied: setuptools in /Users/chrisrorden/miniforge3/lib/python3.9/site-packages (from fury@ git+https://github.com/frheault/fury.git@5059a529#egg=fury->tractography-file-format==0.0.0) (60.5.0)
Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /Users/chrisrorden/miniforge3/lib/python3.9/site-packages (from packaging>=17.0->fury@ git+https://github.com/frheault/fury.git@5059a529#egg=fury->tractography-file-format==0.0.0) (3.0.8)
Requirement already satisfied: soupsieve>1.2 in /Users/chrisrorden/miniforge3/lib/python3.9/site-packages (from beautifulsoup4->gdown>=4.*->tractography-file-format==0.0.0) (2.3.2.post1)
Requirement already satisfied: idna<4,>=2.5 in /Users/chrisrorden/miniforge3/lib/python3.9/site-packages (from requests[socks]->gdown>=4.*->tractography-file-format==0.0.0) (3.3)
Requirement already satisfied: charset-normalizer~=2.0.0 in /Users/chrisrorden/miniforge3/lib/python3.9/site-packages (from requests[socks]->gdown>=4.*->tractography-file-format==0.0.0) (2.0.12)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in /Users/chrisrorden/miniforge3/lib/python3.9/site-packages (from requests[socks]->gdown>=4.*->tractography-file-format==0.0.0) (1.26.9)
Requirement already satisfied: certifi>=2017.4.17 in /Users/chrisrorden/miniforge3/lib/python3.9/site-packages (from requests[socks]->gdown>=4.*->tractography-file-format==0.0.0) (2021.10.8)
Requirement already satisfied: PySocks!=1.5.7,>=1.5.6 in /Users/chrisrorden/miniforge3/lib/python3.9/site-packages (from requests[socks]->gdown>=4.*->tractography-file-format==0.0.0) (1.7.1)
Installing collected packages: tractography-file-format
  Running setup.py develop for tractography-file-format
Successfully installed tractography-file-format-0.0.0
$ cd scripts
$ python3 tff_convert_tractogram.py ~/IFOF_L.trk ~/IFOF_L.trx
zsh: segmentation fault  python3 tff_convert_tractogram.py ~/IFOF_L.trk ~/IFOF_L.trx

@neurolabusc
Copy link
Member Author

@skoudoro just tried again, with same results as June. Anything else I can do?

@skoudoro
Copy link

Hi @neurolabusc,

Sorry, I did not try yet to fork the repo and introspect in detail this command line to see where it fails exactly.

Since you have no issue with the installation anymore, I was assuming that someone else will look at that. I am not sure what is the reason for the segfault (if it is coming from trx, dipy, vtk or something else). I hope I will be able to reproduce it.

I will look into it next week and keep you updated, I am currently not available this week.

@skoudoro
Copy link

My mac is too old and I can not generate the error, everything is working as expected. I am currently trying to have access to an M1.

@neurolabusc
Copy link
Member Author

@skoudoro I would suggest you ask for cloud credits from brainhack_cloud or use the free tier this will give you access to Ampere Altera A1 ARM-based CPUs.

For your needs, I do not even think you need docker, you can simply create and launch an instance and SSH into the CPU. Here are the instructions. You can create multiple instances using Oracle (rpm-based) or Ubuntu (Debian-based 18.04-22.04) distributions. You can choose between ARM (A1) and x86-64 (Xeon and Ryzen) instances, so you can validate your solution across architectures. I am happy to have a zoom meeting to help get you up and running.

@skoudoro
Copy link

Hi @neurolabusc,

I just got a new M1 and try this. it worked as expected, no segmentation fault.
I only difference I see is:

you use this repo https://github.com/frheault/tractography_file_format.git
and I use the official https://github.com/tee-ar-ex/trx-python

I am not sure that the repo you are using is up to date.

I hope it helps, keep me updated

@skoudoro
Copy link

@frheault, can you tell us if you continue to update https://github.com/frheault/tractography_file_format.git or we should just forget it?

@neurolabusc
Copy link
Member Author

@skoudoro well spotted. Thanks for following up on this. It does seem like the installer(s) do not correctly identify all the dependencies - things worked if I manually installed them. Is there a way we could resolve these? Regardless, I think you can close this issue as you have resolved my core issue.

$ cd trx-python
$ pip3 install -e .
...
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
nilearn 0.9.2 requires joblib>=0.15, which is not installed.
nilearn 0.9.2 requires lxml, which is not installed.
nilearn 0.9.2 requires pandas>=1.0, which is not installed.
nilearn 0.9.2 requires scikit-learn>=0.22, which is not installed.
$ pip3 install scikit-learn
$ pip3 install pandas
$ pip3 install lxml
$ pip3 install -e .
$ cd scripts
$ python tff_convert_tractogram.py ~/IFOF_L.trk ~/IFOF_L.trx

@skoudoro
Copy link

It does seem like the installer(s) do not correctly identify all the dependencies - things worked if I manually installed them. Is there a way we could resolve these?

I had the same problem concerning the dependencies, I had to do it manually.

I think #36 is fixing those problems so it should be better when this PR is merged.

@arokem
Copy link
Collaborator

arokem commented Sep 16, 2022

@frheault, can you tell us if you continue to update https://github.com/frheault/tractography_file_format.git or we should just forget it?

That repository is now set to automatically redirect here. So, this repository supersedes it completely. I believe that you can still pull from the old URL, so you don't necessarily have to update the remotes on your local machine.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants