You can have separate pyproject.toml files and share a common poetry.lock and virtual environment between projects. You can have the dev dependencies in the root project. Poetry can do this but a plugin is required e.g. https://github.com/ag14774/poetry-monoranger-plugin