Skip to main content

install-pymllm

Install the pymllm Python package. Asks the user whether to do a full build (with CMake C++ compilation) or a fast install (Python-only, skip CMake). Use when the user asks to install, set up, or reinstall pymllm.

Ir a la instalación

Datos de origen

Repositorio
UbiquitousLearning/mllm
Última actividad en el origen
17 de marzo de 2026 a las 13:26
Idioma detectado de SKILL.md
inglés
Estrellas
1613
Forks
216

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
install-pymllm
description
Install the pymllm Python package. Asks the user whether to do a full build (with CMake C++ compilation) or a fast install (Python-only, skip CMake). Use when the user asks to install, set up, or reinstall pymllm.
# Install pymllm ## Goal Help the user install the `pymllm` package with the right configuration for their use case. ## Workflow ### Step 1: Ask the user which install mode they want Use `AskUserQuestion` to present two options: **Full Install (with C++ build)** - Compiles the C++ mllm runtime and FFI extension via CMake - Required if the user needs mobile inference, model conversion with FFI, or CPU/QNN backends - Slower (several minutes depending on the machine) - Command: `pip wheel -v -w dist . && pip install dist/*.whl --force-reinstall` **Fast Install (Python-only, skip CMake)** - Skips the entire CMake build step - Only installs the pure Python package - Recommended for users who only use CUDA backends (FlashInfer, TileLang) and do not need the C++ mllm runtime - Much faster (seconds) - Command: `SKBUILD_WHEEL_CMAKE=false pip install -e .` ### Step 2: Ask editable or non-editable Use `AskUserQuestion` to ask: - **Editable (`pip install -e .`)**: For active development. Python imports point to the source tree. Changes to `.py` files take effect immediately without reinstalling. - **Non-editable (wheel)**: For stable usage. Installs a wheel into site-packages. ### Step 3: Ask whether the user needs CUDA optional dependencies Use `AskUserQuestion` to ask whether the user needs CUDA support (FlashInfer, TileLang, pyzmq, etc.). This determines whether to append `[cuda]` to the install specifier (e.g. `pip install -e ".[cuda]"` instead of `pip install -e .`). **This applies to ALL install modes.** For fast-install users this is especially important since the CUDA packages are the primary compute backend. ### Step 4: Execute the install Based on user choices, compose and run the appropriate command. The install specifier is either `.` or `".[cuda]"` depending on Step 3. | Mode | Editable | CUDA | Command | |------|----------|------|---------| | Full | Yes | No | `pip install -e -v .` | | Full | Yes | Yes | `pip install -e -v ".[cuda]"` | | Full | No | No | `pip wheel -v -w dist . && pip install dist/*.whl --force-reinstall` | | Full | No | Yes | `pip wheel -v -w dist . && pip install dist/*.whl --force-reinstall && pip install "pymllm[cuda]"` | | Fast | Yes | No | `SKBUILD_WHEEL_CMAKE=false pip install -e .` | | Fast | Yes | Yes | `SKBUILD_WHEEL_CMAKE=false pip install -e ".[cuda]"` | | Fast | No | No | `SKBUILD_WHEEL_CMAKE=false pip wheel -v -w dist . && pip install dist/*.whl --force-reinstall` | | Fast | No | Yes | `SKBUILD_WHEEL_CMAKE=false pip wheel -v -w dist . && pip install dist/*.whl --force-reinstall && pip install "pymllm[cuda]"` | ### Step 5: Post-install for editable + full build If the user chose **editable + full build**, the compiled `.so` files live in a build directory (e.g. `build/bin/`), not in the source tree. The Python code at `pymllm/__init__.py` looks for libraries at `pymllm/lib/MllmFFIExtension.so`. A symlink is needed to bridge this gap. **Invoke the `/link-pymllm-lib` skill** to help the user set up the symlink. ## Important Notes - The project root must contain `pyproject.toml` with `scikit-build-core` as the build backend. - The `wheel.cmake = true` flag in `pyproject.toml` controls whether CMake runs. The env var `SKBUILD_WHEEL_CMAKE=false` overrides it at install time without modifying the file. - For non-editable full builds, the `.so` files are bundled inside the wheel automatically — no symlink needed. - For fast installs, `pymllm.is_mobile_available()` will return `False` since no C++ libraries are present. This is expected. - The `[cuda]` optional dependencies are defined in `pyproject.toml` under `[project.optional-dependencies]`.
Ver en GitHub