diff --git a/poetry/utils/shell.py b/poetry/utils/shell.py index e883c80fc6e..b18bda0dd20 100644 --- a/poetry/utils/shell.py +++ b/poetry/utils/shell.py @@ -9,6 +9,7 @@ from shellingham import detect_shell from ._compat import WINDOWS +from ._compat import Path from .env import VirtualEnv @@ -42,7 +43,17 @@ def get(cls): # type: () -> Shell try: name, path = detect_shell(os.getpid()) except (RuntimeError, ShellDetectionFailure): - raise RuntimeError("Unable to detect the current shell.") + shell = None + + if os.name == "posix": + shell = os.environ.get("SHELL") + elif os.name == "nt": + shell = os.environ.get("COMSPEC") + + if not shell: + raise RuntimeError("Unable to detect the current shell.") + + name, path = Path(shell).stem, shell cls._shell = cls(name, path)