apple / apple/coremltools

Missing modules (libcoremlpython) when importing coremltools 8.2 on linux

Open
#2,465 1 comment 0 reactions 0 assignees View on GitHub
bug triaged
Dominant language
Python
Stars
5.4k
Forks
850
Avg merge
4d 5h
Merged PRs (30d)
10

Description

## 🐞Describing the bug
Coremltools 8.2 installs fine on Linux but errors with missing modules when imported. Looks like `libcoremlpython.so` is missing.
```
❯ python3 -c "import coremltools"
Failed to load _MLModelProxy: No module named 'coremltools.libcoremlpython'
Failed to load _MLCPUComputeDeviceProxy: No module named 'coremltools.libcoremlpython'
Failed to load _MLGPUComputeDeviceProxy: No module named 'coremltools.libcoremlpython'
Failed to load _MLNeuralEngineComputeDeviceProxy: No module named 'coremltools.libcoremlpython'
Failed to load _MLModelProxy: No module named 'coremltools.libcoremlpython'
Failed to load _MLComputePlanProxy: No module named 'coremltools.libcoremlpython'
Failed to load _MLModelProxy: No module named 'coremltools.libcoremlpython'
Failed to load _MLModelAssetProxy: No module named 'coremltools.libcoremlpython'
❯ find ./myenv/lib/python3.12/site-packages/coremltools -name "*.so"
./myenv/lib/python3.12/site-packages/coremltools/_deps/kmeans1d/_core.cpython-312-x86_64-linux-gnu.so
./myenv/lib/python3.12/site-packages/coremltools/libmilstoragepython.so
./myenv/lib/python3.12/site-packages/coremltools/libmodelpackage.so
```

I only see this only on Linux. On macOS, I can install and import coremltools 8.2 fine (I can see `libcoremlpython.so` in `/myenv/lib/python3.12/site-packages/coremltools/`).

Do you have any advice?

## Stack Trace
```
❯ python3 -c "import coremltools"
Failed to load _MLModelProxy: No module named 'coremltools.libcoremlpython'
Failed to load _MLCPUComputeDeviceProxy: No module named 'coremltools.libcoremlpython'
Failed to load _MLGPUComputeDeviceProxy: No module named 'coremltools.libcoremlpython'
Failed to load _MLNeuralEngineComputeDeviceProxy: No module named 'coremltools.libcoremlpython'
Failed to load _MLModelProxy: No module named 'coremltools.libcoremlpython'
Failed to load _MLComputePlanProxy: No module named 'coremltools.libcoremlpython'
Failed to load _MLModelProxy: No module named 'coremltools.libcoremlpython'
Failed to load _MLModelAssetProxy: No module named 'coremltools.libcoremlpython'
```
## To Reproduce
```
❯ python3.12 -m venv myenv
❯ source myenv/bin/activate
❯ pip install coremltools
Collecting coremltools
Downloading coremltools-8.2-cp312-none-manylinux1_x86_64.whl.metadata (2.5 kB)
Requirement already satisfied: numpy>=1.14.5 in ./myenv/lib/python3.12/site-packages (from coremltools) (2.2.3)
Requirement already satisfied: protobuf>=3.1.0 in ./myenv/lib/python3.12/site-packages (from coremltools) (6.30.0)
Requirement already satisfied: sympy in ./myenv/lib/python3.12/site-packages (from coremltools) (1.13.3)
Requirement already satisfied: tqdm in ./myenv/lib/python3.12/site-packages (from coremltools) (4.67.1)
Requirement already satisfied: packaging in ./myenv/lib/python3.12/site-packages (from coremltools) (24.2)
Requirement already satisfied: attrs>=21.3.0 in ./myenv/lib/python3.12/site-packages (from coremltools) (25.1.0)
Requirement already satisfied: cattrs in ./myenv/lib/python3.12/site-packages (from coremltools) (24.1.2)
Requirement already satisfied: pyaml in ./myenv/lib/python3.12/site-packages (from coremltools) (25.1.0)
Requirement already satisfied: PyYAML in ./myenv/lib/python3.12/site-packages (from pyaml->coremltools) (6.0.2)
Requirement already satisfied: mpmath<1.4,>=1.1.0 in ./myenv/lib/python3.12/site-packages (from sympy->coremltools) (1.3.0)
Downloading coremltools-8.2-cp312-none-manylinux1_x86_64.whl (2.2 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.2/2.2 MB 21.7 MB/s eta 0:00:00
Installing collected packages: coremltools
Successfully installed coremltools-8.2

[notice] A new release of pip is available: 24.3.1 -> 25.0.1
[notice] To update, run: pip install --upgrade pip
❯ python3 -c "import coremltools"
Failed to load _MLModelProxy: No module named 'coremltools.libcoremlpython'
Failed to load _MLCPUComputeDeviceProxy: No module named 'coremltools.libcoremlpython'
Failed to load _MLGPUComputeDeviceProxy: No module named 'coremltools.libcoremlpython'
Failed to load _MLNeuralEngineComputeDeviceProxy: No module named 'coremltools.libcoremlpython'
Failed to load _MLModelProxy: No module named 'coremltools.libcoremlpython'
Failed to load _MLComputePlanProxy: No module named 'coremltools.libcoremlpython'
Failed to load _MLModelProxy: No module named 'coremltools.libcoremlpython'
Failed to load _MLModelAssetProxy: No module named 'coremltools.libcoremlpython'
❯ find ./myenv/lib/python3.12/site-packages/coremltools -name "*.so"
./myenv/lib/python3.12/site-packages/coremltools/_deps/kmeans1d/_core.cpython-312-x86_64-linux-gnu.so
./myenv/lib/python3.12/site-packages/coremltools/libmilstoragepython.so
./myenv/lib/python3.12/site-packages/coremltools/libmodelpackage.so
```

## System environment (please complete the following information):
- coremltools version: 8.2
- OS (e.g. MacOS version or Linux type): Linux jammy (22.04)
- Any other relevant version information (e.g. PyTorch or TensorFlow version): na

Contributor guide

Open the contributing guide

Research direction

Reproduce with the reported Python 3.12 virtual environment and `python3 -c "import coremltools"`, then inspect the installed 8.2 manylinux wheel and its `coremltools` package contents. Compare the Linux installation with the macOS installation, where `libcoremlpython.so` is present; done means the Linux package contains the required module and imports without these errors.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux, python
Domain
build-system, machine-learning
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.