ANTsX / ANTsPy

A fast medical imaging analysis library in Python with algorithms for registration, segmentation, and more.
https://antspyx.readthedocs.io
Apache License 2.0
586 stars 161 forks source link

vtk path/import issue on Macbook Pro M3 #629

Closed ntustison closed 1 month ago

ntustison commented 1 month ago

Hey @cookpa ,

(Posting here in case anybody else has this issue.)

ANTsPy install is smooth on my M1 machine but I'm running into difficulties on my M3. It looks like the import is looking for vtk in the wrong path even though it's already installed. Any ideas?

% python3
Python 3.11.7 (main, Dec 15 2023, 12:09:56) [Clang 14.0.6 ] on darwin
Type "help", "copyright", "credits" or "license" for more information.
Traceback (most recent call last):
  File "/Users/ntustison/.python_shell_startup.py", line 1, in <module>
    import ants
  File "/opt/anaconda3/lib/python3.11/site-packages/ants/__init__.py", line 4, in <module>
    from .core import *
  File "/opt/anaconda3/lib/python3.11/site-packages/ants/core/__init__.py", line 2, in <module>
    from .ants_image_io import (
  File "/opt/anaconda3/lib/python3.11/site-packages/ants/core/ants_image_io.py", line 28, in <module>
    from . import ants_image as iio
  File "/opt/anaconda3/lib/python3.11/site-packages/ants/core/ants_image.py", line 28, in <module>
    from .. import registration, segmentation, utils, viz
  File "/opt/anaconda3/lib/python3.11/site-packages/ants/registration/__init__.py", line 3, in <module>
    from .affine_initializer import affine_initializer
  File "/opt/anaconda3/lib/python3.11/site-packages/ants/registration/affine_initializer.py", line 7, in <module>
    from .. import utils
  File "/opt/anaconda3/lib/python3.11/site-packages/ants/utils/__init__.py", line 2, in <module>
    from .bias_correction import (n3_bias_field_correction, n3_bias_field_correction2, n4_bias_field_correction, abp_n4)
  File "/opt/anaconda3/lib/python3.11/site-packages/ants/utils/bias_correction.py", line 4, in <module>
    from . import process_args as pargs
  File "/opt/anaconda3/lib/python3.11/site-packages/ants/utils/process_args.py", line 14, in <module>
    from .. import lib
ImportError: dlopen(/opt/anaconda3/lib/python3.11/site-packages/ants/lib.cpython-311-darwin.so, 0x0002): Library not loaded: @rpath/libvtkInteractionWidgets-9.3.1.dylib
  Referenced from: <A555554C-B296-3F85-BBCD-DD6CF163C15A> /opt/anaconda3/lib/python3.11/site-packages/ants/lib.cpython-311-darwin.so
  Reason: tried: '/opt/anaconda3/bin/../lib/libvtkInteractionWidgets-9.3.1.dylib' (no such file), '/opt/anaconda3/bin/../lib/libvtkInteractionWidgets-9.3.1.dylib' (no such file)
(antsx) ntustison@shai-hulud Pkg % pip3 install vtk
Requirement already satisfied: vtk in /opt/anaconda3/lib/python3.11/site-packages (9.3.0)
Requirement already satisfied: matplotlib>=2.0.0 in /opt/anaconda3/lib/python3.11/site-packages (from vtk) (3.8.0)
Requirement already satisfied: contourpy>=1.0.1 in /opt/anaconda3/lib/python3.11/site-packages (from matplotlib>=2.0.0->vtk) (1.2.0)
Requirement already satisfied: cycler>=0.10 in /opt/anaconda3/lib/python3.11/site-packages (from matplotlib>=2.0.0->vtk) (0.11.0)
Requirement already satisfied: fonttools>=4.22.0 in /opt/anaconda3/lib/python3.11/site-packages (from matplotlib>=2.0.0->vtk) (4.25.0)
Requirement already satisfied: kiwisolver>=1.0.1 in /opt/anaconda3/lib/python3.11/site-packages (from matplotlib>=2.0.0->vtk) (1.4.4)
Requirement already satisfied: numpy<2,>=1.21 in /opt/anaconda3/lib/python3.11/site-packages (from matplotlib>=2.0.0->vtk) (1.24.3)
Requirement already satisfied: packaging>=20.0 in /opt/anaconda3/lib/python3.11/site-packages (from matplotlib>=2.0.0->vtk) (23.1)
Requirement already satisfied: pillow>=6.2.0 in /opt/anaconda3/lib/python3.11/site-packages (from matplotlib>=2.0.0->vtk) (10.2.0)
Requirement already satisfied: pyparsing>=2.3.1 in /opt/anaconda3/lib/python3.11/site-packages (from matplotlib>=2.0.0->vtk) (3.0.9)
Requirement already satisfied: python-dateutil>=2.7 in /opt/anaconda3/lib/python3.11/site-packages (from matplotlib>=2.0.0->vtk) (2.8.2)
Requirement already satisfied: six>=1.5 in /opt/anaconda3/lib/python3.11/site-packages (from python-dateutil>=2.7->matplotlib>=2.0.0->vtk) (1.16.0)
cookpa commented 1 month ago

I don't know what's going on here. Do you have the same OS on both?

ntustison commented 1 month ago

Yeah, Sonoma 14.4.1.

cookpa commented 1 month ago

Also it seems to be specifically looking for VTK 9.3.1 and it seems you have 9.3.0 installed. But I'm not sure where this dependency comes from

ntustison commented 1 month ago

Interesting observation. Okay, that gives me something to work with. I'll let you know. Thanks.

ntustison commented 1 month ago

Finally got it working. Migrated to miniconda. Downgraded to python 3.11. Had to temporarily move a VTK installation. I'm guessing something in that caused it to work.