Skip to content

Native Windows execution fails building #508

Closed

Description

@1155dosilicon

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.ps1 using uv (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:

  1. Add pyopenjtalk-plus conditionally for Windows in dependencies:
dependencies = [
    ...
    "misaki[en,ja,ko,zh]==0.9.4",
    "pyopenjtalk-plus>=0.4.1 ; sys_platform == 'win32'",
    ...
]
  1. Add a conditional override in [tool.uv] so uv does not attempt to resolve/build pyopenjtalk on 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

  1. RBEmerson970 commented on Aug 17, 2026

    @RBEmerson970

    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. :)

  2. remsky commented on Aug 18, 2026

    @remsky
    Owner

    I did actually have a local branch for swapping to -plus overall, 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.

  3. added a commit that references this issue on Oct 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions