diff --git a/metagpt/roles/engineer.py b/metagpt/roles/engineer.py index 919b4bf13..c7e281f32 100644 --- a/metagpt/roles/engineer.py +++ b/metagpt/roles/engineer.py @@ -496,7 +496,9 @@ class Engineer(Role): filename = Path(i) if filename.suffix != ".py": continue - workdir = self.repo.srcs.workdir / filename.parent + workdir = self.src_workspace / filename.parent + if not workdir.exists(): + workdir = self.project_repo.workdir / filename.parent await init_python_folder(workdir) async def _is_fixbug(self) -> bool: diff --git a/metagpt/utils/common.py b/metagpt/utils/common.py index 28bfe623e..bfc01d2e4 100644 --- a/metagpt/utils/common.py +++ b/metagpt/utils/common.py @@ -896,6 +896,11 @@ def get_project_srcs_path(workdir: str | Path) -> Path: async def init_python_folder(workdir: str | Path): + if not workdir: + return + workdir = Path(workdir) + if not workdir.exists(): + return init_filename = Path(workdir) / "__init__.py" if init_filename.exists(): return