← Whispering

fix: pre-install stable spacy before kokoro to avoid dev build failure

1597dc8311447b717ab8625d09a2bc783aa3b06d · Claude · Feb 10, 2026 21:02

kokoro → misaki[en] → spacy-curated-transformers → spacy, and pip
resolves to spacy-4.0.0.dev3 which fails to build from source.
Pre-installing spacy>=3.7,<4.0.0 pins it to a stable release.

https://claude.ai/code/session_01965m1v3f1cK6gDV1JHioA8

+9 −1 · 1 file changed

  • scripts/install.sh +9 −1
diff --git a/scripts/install.sh b/scripts/install.sh
index e3ab216..39d884d 100755
--- a/scripts/install.sh
+++ b/scripts/install.sh
@@ -450,12 +450,20 @@ install_kokoro() {
         echo -e "${GREEN}✓ espeak-ng already installed${NC}"
     fi
 
+    # Pre-install stable spacy to prevent pip from pulling spacy 4.x dev
+    # (misaki[en] → spacy-curated-transformers → spacy, and pip may resolve
+    # to a 4.0.0.devN pre-release that fails to build from source)
+    echo -e "${BLUE}  Pre-installing stable spacy...${NC}"
+    $PYTHON_CMD -m pip install "spacy>=3.7,<4.0.0" --quiet 2>/dev/null || true
+
     # Install kokoro and soundfile
     $PYTHON_CMD -m pip install kokoro soundfile 2>/dev/null && {
         echo -e "${GREEN}✓ Kokoro TTS installed${NC}"
     } || {
         echo -e "${RED}✗ Failed to install Kokoro TTS${NC}"
-        echo -e "${BLUE}  You can try manually: $PYTHON_CMD -m pip install kokoro soundfile${NC}"
+        echo -e "${BLUE}  You can try manually:${NC}"
+        echo -e "${BLUE}    $PYTHON_CMD -m pip install 'spacy>=3.7,<4'${NC}"
+        echo -e "${BLUE}    $PYTHON_CMD -m pip install kokoro soundfile${NC}"
     }
 
     # Verify installation