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.

Zur Installation springen

Quellinformationen

Repository
UbiquitousLearning/mllm
Letzte Quellaktivität
17. März 2026 um 13:26
Erkannte Sprache von SKILL.md
Englisch
Sterne
1.612
Forks
216

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
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]`.
Auf GitHub ansehen