Skip to content

scipy does not works in mwpython on macos #24

Open
@balbasty

Description

@balbasty

Scipy imports fail with mwpython.

This has already been reported to mathworks with no response

The reason why mwpython is needed at all seems to be graphics related

Here's the error I get

Traceback (most recent call last):
  File "/Users/balbasty/Dropbox/Workspace/code/fil/spm2mne/Matlab2MNE_check.py", line 41, in <module>
    raw = spm_2_mne_raw(mD)
  File "/Users/balbasty/Dropbox/Workspace/code/fil/spm2mne/spm_mne_converter.py", line 38, in spm_2_mne_raw
    info = mne.create_info(ch_names=channel_names, sfreq=sampling_freq, ch_types=channel_types)
  File "/Users/balbasty/miniforge3/envs/spm/lib/python3.10/site-packages/lazy_loader/__init__.py", line 82, in __getattr__
    submod = importlib.import_module(submod_path)
  File "/Users/balbasty/miniforge3/envs/spm/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/Users/balbasty/miniforge3/envs/spm/lib/python3.10/site-packages/mne/_fiff/meas_info.py", line 21, in <module>
    from ..utils import (
  File "/Users/balbasty/miniforge3/envs/spm/lib/python3.10/site-packages/lazy_loader/__init__.py", line 82, in __getattr__
    submod = importlib.import_module(submod_path)
  File "/Users/balbasty/miniforge3/envs/spm/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "/Users/balbasty/miniforge3/envs/spm/lib/python3.10/site-packages/mne/utils/numerics.py", line 20, in <module>
    from scipy import sparse
  File "/Users/balbasty/miniforge3/envs/spm/lib/python3.10/site-packages/scipy/__init__.py", line 134, in __getattr__
    return _importlib.import_module(f'scipy.{name}')
  File "/Users/balbasty/miniforge3/envs/spm/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "/Users/balbasty/miniforge3/envs/spm/lib/python3.10/site-packages/scipy/sparse/__init__.py", line 315, in <module>
    from . import csgraph
  File "/Users/balbasty/miniforge3/envs/spm/lib/python3.10/site-packages/scipy/sparse/csgraph/__init__.py", line 187, in <module>
    from ._laplacian import laplacian
  File "/Users/balbasty/miniforge3/envs/spm/lib/python3.10/site-packages/scipy/sparse/csgraph/_laplacian.py", line 7, in <module>
    from scipy.sparse.linalg import LinearOperator
  File "/Users/balbasty/miniforge3/envs/spm/lib/python3.10/site-packages/scipy/sparse/linalg/__init__.py", line 131, in <module>
    from ._isolve import *
  File "/Users/balbasty/miniforge3/envs/spm/lib/python3.10/site-packages/scipy/sparse/linalg/_isolve/__init__.py", line 4, in <module>
    from .iterative import *
  File "/Users/balbasty/miniforge3/envs/spm/lib/python3.10/site-packages/scipy/sparse/linalg/_isolve/iterative.py", line 5, in <module>
    from scipy.linalg import get_lapack_funcs
  File "/Users/balbasty/miniforge3/envs/spm/lib/python3.10/site-packages/scipy/linalg/__init__.py", line 203, in <module>
    from ._misc import *
  File "/Users/balbasty/miniforge3/envs/spm/lib/python3.10/site-packages/scipy/linalg/_misc.py", line 3, in <module>
    from .blas import get_blas_funcs
  File "/Users/balbasty/miniforge3/envs/spm/lib/python3.10/site-packages/scipy/linalg/blas.py", line 213, in <module>
    from scipy.linalg import _fblas
ImportError: dlopen(/Users/balbasty/miniforge3/envs/spm/lib/python3.10/site-packages/scipy/linalg/_fblas.cpython-310-darwin.so, 0x0002): Symbol not found: _caxpy$NEWLAPACK
  Referenced from: <54500246-AE5B-3FDD-A054-9F941C9CE5D8> /Users/balbasty/miniforge3/envs/spm/lib/python3.10/site-packages/scipy/linalg/_fblas.cpython-310-darwin.so
  Expected in:     <81FFBDC1-F06D-3E68-825F-32A9B9F898B0> /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate

I suppose some library path/flag is not set properly by mwpython. I don't have any idea how to fix this, but we should find a workaround. Otherwise, spm-python is essentially unsuable with the rest of the neuroimaging ecosystem (which is highly scipy-dependent).

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions