ml-explore/mlx

Common Installation Problems

awni opened this issue · 8 comments

awni commented

The docs have more information on troubleshooting installation.

Two of the more common issues are described below (as well as in the docs).

Installing from PyPI

A common problem is pip install mlx does not find a matching distribution:

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

If this happens you are probably using a non-native Python. The output of:

python -c "import platform; print(platform.processor())"

Should be arm not i386. You can fix this by using an environment with a native Python using Conda. Another option is to simply reinstall Conda and setup a new environment.

Installing from Source

You see the following error when you try to build:

error: unable to find utility "metal", not a developer tool or in PATH

To fix this, first make sure you have Xcode installed:

xcode-select --install

Then set the active developer directory:

sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
Screen Shot 2023-12-21 at 3 50 06 PM

Having the same issue, platform is outputting arm is there something else I should check?

awni commented

Check your operating system: requirements here

And try pythom -m pip install mlx

Is this not applicable for pyenv?

awni commented

I'm not sure what you mean. You should be able to use mlx inside a pyenv.

I resolved the issue by reinstalling conda, and successfully installed it using pip install chat-with-mlx. However, how should I run it?

awni commented

However, how should I run it?

To run chat-with-mlx I would check the docs there. That is a third party repo. If you have issues with it, I would encourage you to file an issue in that repo.

I had the same problem. The cause was that I installed zsh (/usr/local/bin/zsh) on an Intel Mac and then changed to an arm64 Mac, so the Intel zsh was being used only by VScode.
It seems that deleting it with brew uninstall zsh will solve the problem.

I had an installation problem with my setup which wasn't based on miniconda (#1846). The step where you created an editable package failed because it got confused between python 3.9 and 3.13.0. To overcome the issue I switched to miniconda. Starting a system with zsh for the shell and using the brew package manager, I was able to do the following:

cd mlx
rm -rf *
git checkout -- .
brew install --cask miniconda
conda init "$(basename "${SHELL}")"
source ~/.zshrc
conda create --name myenv python=3.13.0
conda activate myenv
pip install --upgrade pip
CMAKE_BUILD_PARALLEL_LEVEL=8 pip install ".[dev]"
CMAKE_BUILD_PARALLEL_LEVEL=8 pip install -e ".[dev]"

And this makes the -e option work for me with python 3.13.0. It previously only worked for 3.9.x without miniconda.

It was probably a setup glitch on my system, but I am reporting this here in case it is a common issue or it helps others.