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.

跳到安装

来源信息

仓库
UbiquitousLearning/mllm
最近来源活动
2026年3月17日 13:26
检测到的 SKILL.md 语言
英语
星标
1,613
分支
216

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
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]`.
在 GitHub 查看