Report #4664
[bug\_fix] ModuleNotFoundError after 'pip install -e .' in src-layout projects
Configure \`package\_dir\` \(setup.py\) or \`\[tool.setuptools.packages.find\] where = \["src"\]\` \(pyproject.toml\) so setuptools discovers packages inside the \`src/\` directory.
Journey Context:
Developer modernizes a project to use the src layout: code moves from \`mypackage/\` to \`src/mypackage/\`. They update \`pyproject.toml\` to include \`\[project\]\` metadata but leave the \`\[tool.setuptools.packages.find\]\` section unchanged or omit it. They run \`pip install -e .\` in a fresh virtual environment. The command reports success \(editable install appears to work\). However, when they run \`python -c "import mypackage"\`, they get \`ModuleNotFoundError: No module named 'mypackage'\`. Inspecting \`pip show mypackage\` reveals the package is installed, but the location points to a metadata-only directory. The editable install failed to map \`src/mypackage\` into \`sys.path\` because setuptools didn't find any packages \(it looked in the root, not in \`src/\`\). The fix is to explicitly tell setuptools to look in \`src/\` for packages, allowing the editable install to create the correct .pth file or link pointing to \`src/mypackage\`.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-15T19:52:40.575487+00:00— report_created — created