Skip to content

Fix pip install -e . editable-install failures - #448

Open
Ammar Hashmi (ammar-iitm) wants to merge 1 commit into
microsoft:mainfrom
ammar-iitm:fix/editable-install-pep660
Open

Ammar Hashmi (ammar-iitm) wants to merge 1 commit into
microsoft:mainfrom
ammar-iitm:fix/editable-install-pep660

Conversation

@ammar-iitm

Copy link
Copy Markdown

Summary

Fixes #402: pip install -e . fails with:

ERROR: File "setup.py" or "setup.cfg" not found. Directory cannot be installed in editable mode:
(A "pyproject.toml" file was found, but editable mode currently requires a setuptools-based build.)

Three separate users hit this independently in the issue thread over a few months and each rediscovered the same fix (upgrade pip/setuptools; quote the extras on zsh) without it ever landing anywhere in the repo. This PR puts both fixes where people will actually see them.

Root cause

Building an editable install for a pyproject.toml-only project (no setup.py) requires the PEP 660 editable_wheel build hook, which needs pip>=21.3 and setuptools>=64.0. pyproject.toml here declared setuptools>=61.0 — three minor versions before PEP 660 support existed — so an environment that honors that floor (e.g. --no-build-isolation against an older locally-installed setuptools) can legitimately resolve to a setuptools that can't do the editable build at all, producing exactly this error.

A second, unrelated error also showed up in the same thread: zsh: no matches found: .[streamingtts] — zsh glob-expands the unquoted [...] in pip install -e .[streamingtts].

Changes

  • pyproject.toml: setuptools>=61.0setuptools>=64.0 (the actual minimum for PEP 660 editable installs).
  • docs/vibevoice-asr.md, docs/vibevoice-asr-streaming.md, docs/vibevoice-realtime-0.5b.md: added a troubleshooting note next to each pip install -e . step with the exact upgrade command (python -m pip install --upgrade "pip>=24.0" "setuptools>=64.0" wheel), and — on the one page using extras — the zsh quoting fix (pip install -e ".[streamingtts]").

Test plan

  • python3 -c "import tomllib; tomllib.load(open('pyproject.toml','rb'))"pyproject.toml still parses
  • Manually reviewed each edited doc's rendered Markdown for formatting
  • Docs-only + a version-floor bump; no code paths changed, nothing GPU-dependent to test

🤖 Generated with Claude Code

https://claude.ai/code/session_018vBGcq8YxMgbF58qx7C4cP

- pyproject.toml declared `setuptools>=61.0`, but PEP 660 editable-install
  support (the `editable_wheel` build hook `pip install -e .` needs for a
  pyproject.toml-only project with no setup.py) only landed in setuptools
  64.0.0. Bump the floor so environments that respect the build-system
  requirement don't resolve to a setuptools too old to support it.
- Add a troubleshooting note next to each `pip install -e .` /
  `pip install -e .[streamingtts]` step in the docs, covering the two
  distinct errors reported in microsoft#402: the "editable mode currently requires
  a setuptools-based build" failure (old pip/setuptools), and zsh
  glob-expanding the `[streamingtts]` extras bracket when unquoted. Both
  fixes were already independently rediscovered by three different users
  in the issue thread; this just puts them where people hit the error.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018vBGcq8YxMgbF58qx7C4cP
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

pip install -e . failed

1 participant