Skip to content

Installation (Python 3.13, Mac) #64

@arokem

Description

@arokem

@neurolabusc reports:

Neither the stable nor development version of pyAFQ installs on my Apple Silicon MacOS computer. I followed these instructions:
https://urldefense.com/v3/__https://yeatmanlab.github.io/pyAFQ/howto/installation_guide.html__;!!K-Hz7m0Vt54!lJ9cegaronGZ4M_8QKqv4XmRQbWICntNGKSK0c-A4cCXHruYhzJPy0M1girhHxy_FHRGKWoTAbkLLocPnd0$
Should I post a Github issue, or is there a known work around(if the latter, it would be nice to update the docs)?

I am not a Python packaging expert, but it looks like pyAFQ demands numpy==1.23.5 (released 19 Nov 2022) while the current stable version is 2.2.3.

% python --version
Python 3.13.2
% python -c "import numpy; print(numpy.__version__)"
2.1.3
% pip install pyAFQ
Collecting pyAFQ
  Using cached pyAFQ-1.3.6-py3-none-any.whl.metadata (5.3 kB)
Requirement already satisfied: scikit-image>=0.14.2 in /Users/chris/py3/lib/python3.13/site-packages (from pyAFQ) (0.25.1)
Collecting dipy<1.9.0,>=1.8.0 (from pyAFQ)
  Using cached dipy-1.8.0.tar.gz (6.5 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
  Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: pandas in /Users/chris/py3/lib/python3.13/site-packages (from pyAFQ) (2.2.3)
Collecting pybids>=0.16.2 (from pyAFQ)
  Using cached pybids-0.18.1-py3-none-any.whl.metadata (8.0 kB)
Collecting templateflow>=0.8 (from pyAFQ)
  Using cached templateflow-24.2.2-py3-none-any.whl.metadata (20 kB)
Collecting pimms (from pyAFQ)
  Using cached pimms-0.3.25.tar.gz (67 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting pydra (from pyAFQ)
  Using cached pydra-0.25-py3-none-any.whl.metadata (5.8 kB)
Requirement already satisfied: joblib>=1.3.2 in /Users/chris/py3/lib/python3.13/site-packages (from pyAFQ) (1.4.2)
Requirement already satisfied: dask>=1.1 in /Users/chris/py3/lib/python3.13/site-packages (from pyAFQ) (2025.1.0)
Collecting s3bids>=0.1.7 (from pyAFQ)
  Using cached s3bids-0.1.7-py3-none-any.whl.metadata (727 bytes)
Requirement already satisfied: trx-python in /Users/chris/py3/lib/python3.13/site-packages (from pyAFQ) (0.3)
INFO: pip is looking at multiple versions of pyafq to determine which version is compatible with other requirements. This could take a while.
Collecting pyAFQ
  Using cached pyAFQ-1.3.5-py3-none-any.whl.metadata (5.5 kB)
Collecting boto3>=1.14.0 (from pyAFQ)
  Using cached boto3-1.36.26-py3-none-any.whl.metadata (6.7 kB)
Collecting s3fs~=0.4.2 (from pyAFQ)
  Using cached s3fs-0.4.2-py3-none-any.whl.metadata (1.3 kB)
Collecting toml>=0.10.0 (from pyAFQ)
  Using cached toml-0.10.2-py2.py3-none-any.whl.metadata (7.1 kB)
Collecting setuptools-scm<5.1.0,>=3.4.0 (from setuptools-scm[toml]<5.1.0,>=3.4.0->pyAFQ)
  Using cached setuptools_scm-5.0.2-py2.py3-none-any.whl.metadata (21 kB)
Collecting funcargparse>=0.2.0 (from pyAFQ)
  Using cached funcargparse-0.2.5.tar.gz (33 kB)
  Preparing metadata (setup.py) ... done
Collecting popylar==0.2.* (from pyAFQ)
  Using cached popylar-0.2.tar.gz (3.7 kB)
  Preparing metadata (setup.py) ... done
Collecting plotly==5.3.0 (from pyAFQ)
  Using cached plotly-5.3.0-py2.py3-none-any.whl.metadata (7.4 kB)
Collecting kaleido==0.2.1 (from pyAFQ)
  Using cached kaleido-0.2.1-py2.py3-none-macosx_11_0_arm64.whl.metadata (15 kB)
Requirement already satisfied: imageio>=2.0.0 in /Users/chris/py3/lib/python3.13/site-packages (from pyAFQ) (2.37.0)
Requirement already satisfied: Pillow in /Users/chris/py3/lib/python3.13/site-packages (from pyAFQ) (11.1.0)
Requirement already satisfied: matplotlib in /Users/chris/py3/lib/python3.13/site-packages (from pyAFQ) (3.10.0)
Collecting numpy==1.23.5 (from pyAFQ)
  Using cached numpy-1.23.5.tar.gz (10.7 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  error: subprocess-exited-with-error
     × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> [32 lines of output]
      Traceback (most recent call last):
        File "/Users/chris/py3/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 389, in <module>
          main()
          ~~~~^^
        File "/Users/chris/py3/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 373, in main
          json_out["return_val"] = hook(**hook_input["kwargs"])
                                   ~~~~^^^^^^^^^^^^^^^^^^^^^^^^
        File "/Users/chris/py3/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 137, in get_requires_for_build_wheel
          backend = _build_backend()
        File "/Users/chris/py3/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 70, in _build_backend
          obj = import_module(mod_path)
        File "/opt/homebrew/Cellar/python@3.13/3.13.2/Frameworks/Python.framework/Versions/3.13/lib/python3.13/importlib/__init__.py", line 88, in import_module
          return _bootstrap._gcd_import(name[level:], package, level)
                 ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
        File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
        File "<frozen importlib._bootstrap>", line 1310, in _find_and_load_unlocked
        File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
        File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
        File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
        File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
        File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
        File "<frozen importlib._bootstrap_external>", line 1026, in exec_module
        File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
        File "/private/var/folders/29/hmj3qsmn51b_zyrnnck_y2rw0000gn/T/pip-build-env-337g3aeo/overlay/lib/python3.13/site-packages/setuptools/__init__.py", line 16, in <module>
          import setuptools.version
        File "/private/var/folders/29/hmj3qsmn51b_zyrnnck_y2rw0000gn/T/pip-build-env-337g3aeo/overlay/lib/python3.13/site-packages/setuptools/version.py", line 1, in <module>
          import pkg_resources
        File "/private/var/folders/29/hmj3qsmn51b_zyrnnck_y2rw0000gn/T/pip-build-env-337g3aeo/overlay/lib/python3.13/site-packages/pkg_resources/__init__.py", line 2172, in <module>
          register_finder(pkgutil.ImpImporter, find_on_path)
                          ^^^^^^^^^^^^^^^^^^^
      AttributeError: module 'pkgutil' has no attribute 'ImpImporter'. Did you mean: 'zipimporter'?
      [end of output]
     note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.


(py3) pyScripts % pip install git+https://github.com/yeatmanlab/pyAFQ.git
Collecting git+https://github.com/yeatmanlab/pyAFQ.git
  Cloning https://urldefense.com/v3/__https://github.com/yeatmanlab/pyAFQ.git__;!!K-Hz7m0Vt54!lJ9cegaronGZ4M_8QKqv4XmRQbWICntNGKSK0c-A4cCXHruYhzJPy0M1girhHxy_FHRGKWoTAbkL8bGYuP0$  to /private/var/folders/29/hmj3qsmn51b_zyrnnck_y2rw0000gn/T/pip-req-build-ojtx7sp9
  Running command git clone --filter=blob:none --quiet https://urldefense.com/v3/__https://github.com/yeatmanlab/pyAFQ.git__;!!K-Hz7m0Vt54!lJ9cegaronGZ4M_8QKqv4XmRQbWICntNGKSK0c-A4cCXHruYhzJPy0M1girhHxy_FHRGKWoTAbkL8bGYuP0$  /private/var/folders/29/hmj3qsmn51b_zyrnnck_y2rw0000gn/T/pip-req-build-ojtx7sp9
  Resolved https://urldefense.com/v3/__https://github.com/yeatmanlab/pyAFQ.git__;!!K-Hz7m0Vt54!lJ9cegaronGZ4M_8QKqv4XmRQbWICntNGKSK0c-A4cCXHruYhzJPy0M1girhHxy_FHRGKWoTAbkL8bGYuP0$  to commit 79368ed4aaefd9820e1e2f91f91bdf4a7282cc43
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: scikit_image>=0.14.2 in /Users/chris/py3/lib/python3.13/site-packages (from pyAFQ==1.3.4.dev2679368434) (0.25.1)
Collecting dipy<1.9.0,>=1.8.0 (from pyAFQ==1.3.4.dev2679368434)
  Using cached dipy-1.8.0.tar.gz (6.5 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
  Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: pandas in /Users/chris/py3/lib/python3.13/site-packages (from pyAFQ==1.3.4.dev2679368434) (2.2.3)
Collecting pybids>=0.16.2 (from pyAFQ==1.3.4.dev2679368434)
  Using cached pybids-0.18.1-py3-none-any.whl.metadata (8.0 kB)
Collecting templateflow>=0.8 (from pyAFQ==1.3.4.dev2679368434)
  Using cached templateflow-24.2.2-py3-none-any.whl.metadata (20 kB)
Collecting pimms (from pyAFQ==1.3.4.dev2679368434)
  Using cached pimms-0.3.25.tar.gz (67 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting pydra (from pyAFQ==1.3.4.dev2679368434)
  Using cached pydra-0.25-py3-none-any.whl.metadata (5.8 kB)
Requirement already satisfied: joblib>=1.3.2 in /Users/chris/py3/lib/python3.13/site-packages (from pyAFQ==1.3.4.dev2679368434) (1.4.2)
Requirement already satisfied: dask>=1.1 in /Users/chris/py3/lib/python3.13/site-packages (from pyAFQ==1.3.4.dev2679368434) (2025.1.0)
Collecting s3bids>=0.1.7 (from pyAFQ==1.3.4.dev2679368434)
  Using cached s3bids-0.1.7-py3-none-any.whl.metadata (727 bytes)
Collecting boto3>=1.14.0 (from pyAFQ==1.3.4.dev2679368434)
  Using cached boto3-1.36.26-py3-none-any.whl.metadata (6.7 kB)
Collecting s3fs~=0.4.2 (from pyAFQ==1.3.4.dev2679368434)
  Using cached s3fs-0.4.2-py3-none-any.whl.metadata (1.3 kB)
Collecting toml>=0.10.0 (from pyAFQ==1.3.4.dev2679368434)
  Using cached toml-0.10.2-py2.py3-none-any.whl.metadata (7.1 kB)
Collecting setuptools_scm<5.1.0,>=3.4.0 (from setuptools_scm[toml]<5.1.0,>=3.4.0->pyAFQ==1.3.4.dev2679368434)
  Using cached setuptools_scm-5.0.2-py2.py3-none-any.whl.metadata (21 kB)
Collecting funcargparse>=0.2.0 (from pyAFQ==1.3.4.dev2679368434)
  Using cached funcargparse-0.2.5.tar.gz (33 kB)
  Preparing metadata (setup.py) ... done
Collecting popylar==0.2.* (from pyAFQ==1.3.4.dev2679368434)
  Using cached popylar-0.2.tar.gz (3.7 kB)
  Preparing metadata (setup.py) ... done
Collecting plotly==5.3.0 (from pyAFQ==1.3.4.dev2679368434)
  Using cached plotly-5.3.0-py2.py3-none-any.whl.metadata (7.4 kB)
Collecting kaleido==0.2.1 (from pyAFQ==1.3.4.dev2679368434)
  Using cached kaleido-0.2.1-py2.py3-none-macosx_11_0_arm64.whl.metadata (15 kB)
Requirement already satisfied: imageio>=2.0.0 in /Users/chris/py3/lib/python3.13/site-packages (from pyAFQ==1.3.4.dev2679368434) (2.37.0)
Requirement already satisfied: Pillow in /Users/chris/py3/lib/python3.13/site-packages (from pyAFQ==1.3.4.dev2679368434) (11.1.0)
Requirement already satisfied: matplotlib in /Users/chris/py3/lib/python3.13/site-packages (from pyAFQ==1.3.4.dev2679368434) (3.10.0)
Collecting numpy==1.23.5 (from pyAFQ==1.3.4.dev2679368434)
  Using cached numpy-1.23.5.tar.gz (10.7 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  error: subprocess-exited-with-error
     × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> [32 lines of output]
      Traceback (most recent call last):
        File "/Users/chris/py3/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 389, in <module>
          main()
          ~~~~^^
        File "/Users/chris/py3/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 373, in main
          json_out["return_val"] = hook(**hook_input["kwargs"])
                                   ~~~~^^^^^^^^^^^^^^^^^^^^^^^^
        File "/Users/chris/py3/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 137, in get_requires_for_build_wheel
          backend = _build_backend()
        File "/Users/chris/py3/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 70, in _build_backend
          obj = import_module(mod_path)
        File "/opt/homebrew/Cellar/python@3.13/3.13.2/Frameworks/Python.framework/Versions/3.13/lib/python3.13/importlib/__init__.py", line 88, in import_module
          return _bootstrap._gcd_import(name[level:], package, level)
                 ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
        File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
        File "<frozen importlib._bootstrap>", line 1310, in _find_and_load_unlocked
        File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
        File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
        File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
        File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
        File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
        File "<frozen importlib._bootstrap_external>", line 1026, in exec_module
        File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
        File "/private/var/folders/29/hmj3qsmn51b_zyrnnck_y2rw0000gn/T/pip-build-env-qu8onlgd/overlay/lib/python3.13/site-packages/setuptools/__init__.py", line 16, in <module>
          import setuptools.version
        File "/private/var/folders/29/hmj3qsmn51b_zyrnnck_y2rw0000gn/T/pip-build-env-qu8onlgd/overlay/lib/python3.13/site-packages/setuptools/version.py", line 1, in <module>
          import pkg_resources
        File "/private/var/folders/29/hmj3qsmn51b_zyrnnck_y2rw0000gn/T/pip-build-env-qu8onlgd/overlay/lib/python3.13/site-packages/pkg_resources/__init__.py", line 2172, in <module>
          register_finder(pkgutil.ImpImporter, find_on_path)
                          ^^^^^^^^^^^^^^^^^^^
      AttributeError: module 'pkgutil' has no attribute 'ImpImporter'. Did you mean: 'zipimporter'?
      [end of output]
     note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions