Missing modules (libcoremlpython) when importing coremltools 8.2 on linux
- 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
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