flatironinstitute / FMM3D

Flatiron Institute Fast Multipole Libraries --- This codebase is a set of libraries to compute N-body interactions governed by the Laplace and Helmholtz equations, to a specified precision, in three dimensions, on a multi-core shared-memory machine.
https://fmm3d.readthedocs.io
Other
91 stars 36 forks source link

make python and pip install fail on MacOS #35

Open lucianogsilvestri opened 1 year ago

lucianogsilvestri commented 1 year ago

Hi

I am unable to install python wrappers. I have tried several things

Running the command pip install fmm3dpy gives

ERROR: Could not find a version that satisfies the requirement fmm3dpy (from versions: none)
ERROR: No matching distribution found for fmm3dpy

Following the instructions on the website, I ran make install and successfully installed FMM3D. I then tried make python but i get the following

ERROR: Exception:
Traceback (most recent call last):
  File "/Users/silves28/anaconda3/envs/sarkas/lib/python3.9/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper
    status = run_func(*args)
  File "/Users/silves28/anaconda3/envs/sarkas/lib/python3.9/site-packages/pip/_internal/cli/req_command.py", line 248, in wrapper
    return func(self, options, args)
  File "/Users/silves28/anaconda3/envs/sarkas/lib/python3.9/site-packages/pip/_internal/commands/install.py", line 377, in run
    requirement_set = resolver.resolve(
  File "/Users/silves28/anaconda3/envs/sarkas/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 73, in resolve
    collected = self.factory.collect_root_requirements(root_reqs)
  File "/Users/silves28/anaconda3/envs/sarkas/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 491, in collect_root_requirements
    req = self._make_requirement_from_install_req(
  File "/Users/silves28/anaconda3/envs/sarkas/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 453, in _make_requirement_from_install_req
    cand = self._make_candidate_from_link(
  File "/Users/silves28/anaconda3/envs/sarkas/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 185, in _make_candidate_from_link
    self._editable_candidate_cache[link] = EditableCandidate(
  File "/Users/silves28/anaconda3/envs/sarkas/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 318, in __init__
    super().__init__(
  File "/Users/silves28/anaconda3/envs/sarkas/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 156, in __init__
    self.dist = self._prepare()
  File "/Users/silves28/anaconda3/envs/sarkas/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 225, in _prepare
    dist = self._prepare_distribution()
  File "/Users/silves28/anaconda3/envs/sarkas/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 328, in _prepare_distribution
    return self._factory.preparer.prepare_editable_requirement(self._ireq)
  File "/Users/silves28/anaconda3/envs/sarkas/lib/python3.9/site-packages/pip/_internal/operations/prepare.py", line 709, in prepare_editable_requirement
    dist = _get_prepared_distribution(
  File "/Users/silves28/anaconda3/envs/sarkas/lib/python3.9/site-packages/pip/_internal/operations/prepare.py", line 69, in _get_prepared_distribution
    abstract_dist.prepare_distribution_metadata(
  File "/Users/silves28/anaconda3/envs/sarkas/lib/python3.9/site-packages/pip/_internal/distributions/sdist.py", line 46, in prepare_distribution_metadata
    self.req.isolated_editable_sanity_check()
  File "/Users/silves28/anaconda3/envs/sarkas/lib/python3.9/site-packages/pip/_internal/req/req_install.py", line 528, in isolated_editable_sanity_check
    and not self.supports_pyproject_editable()
  File "/Users/silves28/anaconda3/envs/sarkas/lib/python3.9/site-packages/pip/_internal/req/req_install.py", line 243, in supports_pyproject_editable
    return "build_editable" in self.pep517_backend._supported_features()
  File "/Users/silves28/anaconda3/envs/sarkas/lib/python3.9/site-packages/pip/_vendor/pyproject_hooks/_impl.py", line 153, in _supported_features
    return self._call_hook('_supported_features', {})
  File "/Users/silves28/anaconda3/envs/sarkas/lib/python3.9/site-packages/pip/_vendor/pyproject_hooks/_impl.py", line 321, in _call_hook
    raise BackendUnavailable(data.get('traceback', ''))
pip._vendor.pyproject_hooks._impl.BackendUnavailable: Traceback (most recent call last):
  File "/Users/silves28/anaconda3/envs/sarkas/lib/python3.9/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 77, in _build_backend
    obj = import_module(mod_path)
  File "/Users/silves28/anaconda3/envs/sarkas/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'setuptools'

However, setuptools is already installed, version 68.0.0

I am using Python 3.9.17 and pip 23.2.1, System: Chip: Apple M2 Max MacOS: ventura 13.4

Thanks for your help

lu1and10 commented 1 year ago

Hi We just made a commit to update pyproject.toml and disable editable mode installation for now, let us know if it works now? Anyway, we are going to switch to pyproject.toml with scikit-build-core or meson for python build soon.

lucianogsilvestri commented 1 year ago

Thanks @lu1and10. I was able to install the python wrappers via make python after pulling the new commit.