Repository navigation
Description
Issue Title:
fix(install): Native Windows execution fails building pyopenjtalk during start-cpu.ps1 / start-gpu.ps1
Issue Body:
Describe the bug
When running start-cpu.ps1 (or start-gpu.ps1) directly on Windows (bare-metal, non-Docker setup), the installation fails during uv pip install -e ".[cpu]".
The dependency misaki[ja] pulls pyopenjtalk, which does not provide pre-built Windows wheels on PyPI and only ships source distributions (sdist). As a result, CMake/NMake attempts to compile it from source and fails with CMake Error: CMAKE_C_COMPILER not set unless Visual Studio C++ Build Tools are pre-installed.
Screenshots or console output
× Failed to build `pyopenjtalk==0.4.1`
├─▶ The build backend returned an error
╰─▶ Call to `setuptools.build_meta.build_wheel` failed (exit code: 1)
[stdout]
-- Configuring incomplete, errors occurred!
CMake is in the system path. Version: cmake version 4.4.2
[stderr]
CMake Error at CMakeLists.txt:17 (project):
Running
'nmake' '-?'
failed with:
no such file or directory
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
hint: `pyopenjtalk` (v0.4.1) was included because `kokoro-fastapi` (v0.8.0) depends on `misaki[ja]` (v0.9.4) which depends on `pyopenjtalk`
hint: Build failures usually indicate a problem with the package or the build environment
Branch / Deployment used
- Branch:
master(v0.8.0) - Deployment: Local / native Windows execution via
start-cpu.ps1usinguv(non-Docker).
Operating System
- OS: Windows (x86_64)
- Python: CPython 3.12 via
uv
Root Cause & Proposed Fix
pyopenjtalk-plus provides pre-built binary wheels for Windows on PyPI as a drop-in replacement that exposes the exact same pyopenjtalk top-level namespace.
In pyproject.toml:
- Add
pyopenjtalk-plusconditionally for Windows independencies:
dependencies = [
...
"misaki[en,ja,ko,zh]==0.9.4",
"pyopenjtalk-plus>=0.4.1 ; sys_platform == 'win32'",
...
]- Add a conditional override in
[tool.uv]souvdoes not attempt to resolve/buildpyopenjtalkon Windows:
[tool.uv]
override-dependencies = [
"triton>=3.5.1 ; platform_machine == 'aarch64'",
"pyopenjtalk ; sys_platform != 'win32'",
]Tested locally on Windows with uv sync --extra cpu and .\start-cpu.ps1, resolving dependencies cleanly and starting the FastAPI server without requiring MSVC build tools.
Activity
RBEmerson970 commentedon Aug 17, 2026
FWIW, the Docker version works like a charm. I use it as a personal (not work) installation, and the price is right: $0.00 USD. Maybe your use case doesn't support working with Docker, but it might just be the quickest solution to your problems. Or not. :)
fix(uv direct run deps): pyopenjtalk-plus on native Windows, avoids M…
Revert "fix(uv direct run deps): pyopenjtalk-plus on native Windows, …
fix(uv direct run deps): pyopenjtalk-plus on native Windows, avoids M…
docs(changelog): pyopenjtalk-plus on native Windows (#508)
remsky commentedon Aug 18, 2026
I did actually have a local branch for swapping to
-plusoverall, but hadn't fully tested it through yet and wasn't needed for the images, and it adds ~70-80MB, a hard-depends on sudachipy + sudachidict-core, some onnx noise.Added your fix in for the windows direct run for now though, thanks. Should be fixed as above; let me know if it doesn't resolve.
chore(release): 0.6.0 [skip ci]