Report #45644
[bug\_fix] ModuleNotFoundError or changes not reflecting after \`pip install -e .\` in modern Python projects
Ensure you are using \`pip>=21.3\` and \`setuptools>=64\` by running \`pip install -U pip setuptools\` before installing. For \`src/\` layouts, ensure \`pyproject.toml\` correctly configures \`\[tool.setuptools.packages.find\]\` with \`where = \['src'\]\`.
Journey Context:
A developer clones a modern Python project using \`pyproject.toml\` and a \`src/\` directory layout \(e.g., \`src/mypackage/\_\_init\_\_.py\`\). They run \`pip install -e .\` expecting an editable install where changes to source files are immediately reflected in imports. However, they encounter either a \`ModuleNotFoundError\` immediately after installation, or they find that modifications to source files are not being imported even after restarting Python. This occurs because modern pip \(21.3\+\) uses PEP 660 for editable installs, which requires \`setuptools>=64\` to properly handle the metadata and path hooks. If the build environment uses an older setuptools, or if the \`pyproject.toml\` lacks the correct \`\[tool.setuptools.packages.find\]\` configuration to locate the package in the \`src/\` directory, pip may create an editable install pointing to the wrong location or fail to set up the \`.pth\` hooks correctly.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T07:05:17.318409+00:00— report_created — created