Poetry Plugin for Bundling Local Dependencies
Project description
Poetry Shared Venv Plugin
SonarCloud Status
Centralize your monorepo submodules in a single virtual environment.
Motivation
In a monorepo-style project with multiple poetry projects in the same repository, and each project has its own virtual environment, installing dependencies can be a time-consuming task, especially when the dependencies are shared among the projects.
The IDEs also have a hard time switching between them as you navigate through the codebase.
This plugin aims to solve this problem by centralizing the virtual environments in a single directory, very similar to how yarn workspaces
works.
Install
poetry self add poetry-shared-venv-plugin
Usage
- Create a
pyproject.toml
file in the root of your repository. - Add the
shared-venv
section to thepyproject.toml
file.
[tool.poetry]
name = "demo"
version = "0.1.0"
description = "Python workspace"
authors = []
package-mode = false
[tool.poetry.dependencies]
python = "^3.12"
[tool.shared-venv]
enabled = true
root = true
include = [
"packages/**"
]
3. Add your packages to the packages
directory. (or any other directory you want)
Now, when you run the poetry commands to add, update or remove the dependencies, the plugin will install them in the shared virtual environment in the root of the repository, but it will still generate the poetry.lock
file in the package directory as usual.
The root poetry.lock
file will be generated in the root of the repository.
Contributing
- See our Contributing Guide
Change Log
- See our Change Log
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.