https://github.com/python-poetry/poetry-plugin-shell
https://github.com/python-poetry/poetry-plugin-shell
Last synced: 11 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/python-poetry/poetry-plugin-shell
- Owner: python-poetry
- License: mit
- Created: 2024-09-22T19:28:06.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-24T20:14:56.000Z (11 months ago)
- Last Synced: 2025-04-04T09:05:46.060Z (11 months ago)
- Language: Python
- Size: 89.8 KB
- Stars: 81
- Watchers: 2
- Forks: 5
- Open Issues: 24
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Poetry Plugin: Shell
[](https://python-poetry.org/)
> [!NOTE]
> We are looking for maintainers, see the [issue](https://github.com/python-poetry/poetry-plugin-shell/issues/3).
This package is a plugin that runs a subshell with virtual environment activated.
This plugin replaces the same feature as the `shell` command previously available in Poetry.
## Installation
The easiest way to install the `shell` plugin is via the `self add` command of Poetry.
```bash
poetry self add poetry-plugin-shell
```
If you used `pipx` to install Poetry you can add the plugin via the `pipx inject` command.
```bash
pipx inject poetry poetry-plugin-shell
```
Otherwise, if you used `pip` to install Poetry you can add the plugin packages via the `pip install` command.
```bash
pip install poetry-plugin-shell
```
## Usage
The plugin provides a `shell` command to run a subshell with virtual environment activated.
```bash
poetry shell
```
By default, the current active shell is detected and used. Failing that,
the shell defined via the environment variable `SHELL` (on *nix) or
`COMSPEC` (on Windows) is used.
If a virtual environment does not exist, it will be created.
Note that this command starts a new shell and activates the virtual environment.
As such, `exit` should be used to properly exit the shell and the virtual environment instead of `deactivate`.
> [!NOTE]
> This plugin internally uses the [Shellingham](https://github.com/sarugaku/shellingham) project to detect current active shell.