Skip to content

xarray-sql is slow to install with uv in a new python environment on an M1 mac #163

@alxmrs

Description

@alxmrs

When I uv add xarray-sql -v to a clean Python project managed by uv on my M1 mac, it seems to trigger a local compilation of the sources with rust:

verbose traces of the uv add call
uv add xarray-sql -v 
DEBUG uv 0.9.4 (88f519a3b 2025-10-18)
DEBUG Acquired shared lock for `/Users/alxrsngrtn/Library/Caches/uv`
DEBUG Found project root: `/Users/alxrsngrtn/git/xql-experiments`
DEBUG No workspace root found, using project root
DEBUG Acquired lock for `/Users/alxrsngrtn/git/xql-experiments`
DEBUG Reading Python requests from version file at `/Users/alxrsngrtn/git/xql-experiments/.python-version`
DEBUG Using Python request `3.12` from version file at `.python-version`
DEBUG Checking for Python environment at: `.venv`
DEBUG The project environment's Python version satisfies the request: `Python 3.12`
DEBUG Released lock at `/var/folders/h7/c4_scx2s3nbg1x36qln787mm0000gn/T/uv-e259202cda495d48.lock`
DEBUG Acquired lock for `.venv`
DEBUG Using request timeout of 30s
DEBUG Found static `pyproject.toml` for: xql-experiments @ file:///Users/alxrsngrtn/git/xql-experiments
DEBUG No workspace root found, using project root
DEBUG Resolving despite existing lockfile due to mismatched requirements for: `xql-experiments==0.1.0`
  Requested: {Requirement { name: PackageName("xarray-sql"), extras: [], groups: [], marker: true, source: Registry { specifier: VersionSpecifiers([]), index: None, conflict: None }, origin: None }}
  Existing: {}
DEBUG Solving with installed Python version: 3.12.12
DEBUG Solving with target Python version: >=3.12
DEBUG Adding direct dependency: xql-experiments*
DEBUG Searching for a compatible version of xql-experiments @ file:///Users/alxrsngrtn/git/xql-experiments (*)
DEBUG Adding direct dependency: xarray-sql*
DEBUG Found fresh response for: https://pypi.org/simple/xarray-sql/
DEBUG Searching for a compatible version of xarray-sql (*)
DEBUG Selecting: xarray-sql==0.2.2 [compatible] (xarray_sql-0.2.2-cp312-cp312-manylinux_2_28_aarch64.whl)
DEBUG Found fresh response for: https://files.pythonhosted.org/packages/87/1b/fc0376f33147a090e9a8d1ca5b23f154674a8316b2aa9900c4a7787a8982/xarray_sql-0.2.2-cp312-cp312-manylinux_2_28_aarch64.whl.metadata
DEBUG Adding transitive dependency for xarray-sql==0.2.2: dask>=2024.8.0
DEBUG Adding transitive dependency for xarray-sql==0.2.2: datafusion>=52.0.0, <52.0.0+
DEBUG Adding transitive dependency for xarray-sql==0.2.2: xarray>=2024.7.0
...
DEBUG Using request timeout of 30s
DEBUG Identified uncached distribution: xarray-sql==0.2.2
DEBUG Registry requirement already cached: dask==2026.3.0
DEBUG Registry requirement already cached: datafusion==52.0.0
DEBUG Registry requirement already cached: xarray==2026.2.0
DEBUG Registry requirement already cached: click==8.3.2
DEBUG Registry requirement already cached: cloudpickle==3.1.2
DEBUG Registry requirement already cached: fsspec==2026.3.0
DEBUG Registry requirement already cached: packaging==26.0
DEBUG Registry requirement already cached: partd==1.4.2
DEBUG Registry requirement already cached: pyyaml==6.0.3
DEBUG Registry requirement already cached: toolz==1.1.0
DEBUG Registry requirement already cached: pyarrow==23.0.1
DEBUG Registry requirement already cached: typing-extensions==4.15.0
DEBUG Registry requirement already cached: numpy==2.4.4
DEBUG Registry requirement already cached: pandas==3.0.2
DEBUG Registry requirement already cached: locket==1.0.0
DEBUG Registry requirement already cached: python-dateutil==2.9.0.post0
DEBUG Registry requirement already cached: six==1.17.0
DEBUG Acquired lock for `/Users/alxrsngrtn/Library/Caches/uv/sdists-v9/pypi/xarray-sql/0.2.2`
DEBUG Found fresh response for: https://files.pythonhosted.org/packages/35/ef/b1aa99a948f254a87bd38826bb8886d7f28fbc42aa9362345dd46d2cd2cf/xarray_sql-0.2.2.tar.gz
   Building xarray-sql==0.2.2
DEBUG Building: xarray-sql==0.2.2
DEBUG Not using uv build backend direct build of `xarray-sql==0.2.2`, pyproject.toml does not match: The value for `build_system.build-backend` should be `"uv_build"`, not `"maturin"`
DEBUG Assessing Python executable as base candidate: /Users/alxrsngrtn/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/bin/python3.12
DEBUG Reusing existing build environment for: xarray-sql==0.2.2
DEBUG Assessing Python executable as base candidate: /Users/alxrsngrtn/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/bin/python3.12
DEBUG Using base executable for virtual environment: /Users/alxrsngrtn/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/bin/python3.12
DEBUG Resolving build requirements
DEBUG Solving with installed Python version: 3.12.12
DEBUG Solving with target Python version: >=3.12.12
DEBUG Adding direct dependency: maturin>=1.9, <2.0
DEBUG Found fresh response for: https://pypi.org/simple/maturin/
DEBUG Searching for a compatible version of maturin (>=1.9, <2.0)
DEBUG Selecting: maturin==1.12.6 [compatible] (maturin-1.12.6-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl)
DEBUG Found fresh response for: https://files.pythonhosted.org/packages/ef/e8/5f7fd3763f214a77ac0388dbcc71cc30aec5490016bd0c8e6bd729fc7b0a/maturin-1.12.6-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.metadata
DEBUG Tried 1 versions: maturin 1
DEBUG marker environment resolution took 0.002s
DEBUG Installing in maturin==1.12.6 in /Users/alxrsngrtn/Library/Caches/uv/builds-v0/.tmpVUVKBf
DEBUG Registry requirement already cached: maturin==1.12.6
DEBUG Installing build requirement: maturin==1.12.6
DEBUG Creating PEP 517 build environment
DEBUG Calling `maturin.get_requires_for_build_wheel()`
DEBUG Calling `maturin.build_wheel("/Users/alxrsngrtn/Library/Caches/uv/builds-v0/.tmp2IhOAS", {}, None)`
DEBUG Running `maturin pep517 build-wheel -i /Users/alxrsngrtn/Library/Caches/uv/builds-v0/.tmpVUVKBf/bin/python --compatibility off`
DEBUG 📦 Including license file `LICENSE`
DEBUG 🍹 Building a mixed python/rust project
DEBUG 🔗 Found pyo3 bindings
DEBUG 🐍 Found CPython 3.12 at /Users/alxrsngrtn/Library/Caches/uv/builds-v0/.tmpVUVKBf/bin/python
DEBUG 📡 Using build options features from pyproject.toml
DEBUG 💻 Using `MACOSX_DEPLOYMENT_TARGET=11.0` for aarch64-apple-darwin by default
DEBUG    Compiling pyo3-build-config v0.26.0
DEBUG    Compiling pyo3-macros-backend v0.26.0
DEBUG    Compiling pyo3-ffi v0.26.0
DEBUG    Compiling pyo3 v0.26.0
DEBUG    Compiling pyo3-macros v0.26.0
DEBUG    Compiling arrow-pyarrow v57.2.0
DEBUG    Compiling arrow v57.2.0
DEBUG    Compiling datafusion-common v52.2.0
DEBUG    Compiling datafusion-expr-common v52.2.0
DEBUG    Compiling datafusion-proto-common v52.2.0
DEBUG    Compiling datafusion-physical-expr-common v52.2.0

I think a remedy for this would be to pre-compile and distribute binaries for ARM mac (I thought these already existed).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions