Skip to content

poetry shell modifies $TERM env variable within tmux #10

Open

Description

@owittek
  • Poetry version: Poetry (version 1.4.2)
  • Python version: 3.11.3
  • OS version and name: macOS 13.3.1
  • I am on the latest stable Poetry version, installed using a recommended method.
  • I have searched the issues of this repo and believe that this is not a duplicate.
  • I have consulted the FAQ and blog for any relevant entries or release notes.
  • If an exception occurs when executing a command, I executed it again in debug mode (-vvv option) and have included the output below.

Issue

Hey, I'm an avid tmux user and love poetry so far, thanks for your work!

The issue I am experiencing is that when I run poetry shell my $TERM env variable is being changed from screen-256color to tmux-256color which breaks my terminal colors. Manually setting it back to screen-256color works fine. I'm running zsh 5.9 as my shell of choice.

EDIT:

I can see that emulate bash -c '. .../.venv/bin/activate' is being run in my shell when I run poetry shell. The command should be POSIX-compatible so I don't see a reason for it to be emulated. Maybe that causes some kind of issues but that's just speculation on my part.

Activity

  1. changed the title [-]poetry shell modifies $TERM env variable within TMUX[/-] [+]poetry shell modifies $TERM env variable within tmux[/+] on May 2, 2023
  2. dimbleby commented on May 2, 2023

    @dimbleby

    Not a zsh user and no idea what the implications of emulate are, but you can read all about its introduction at python-poetry/poetry#5795

    I avoid poetry shell altogether, just activate the virtual environment yourself as though poetry shell did not exist

  3. owittek commented on May 2, 2023

    @owittek
    Author

    Not a zsh user and no idea what the implications of emulate are, but you can read all about its introduction at python-poetry/poetry#5795

    I avoid poetry shell altogether, just activate the virtual environment yourself as though poetry shell did not exist

    Yeah I do the same thing to prevent this issue but I still wanted to report this so it can be fixed eventually if it's not just an issue on my side.

  4. dimbleby commented on May 2, 2023

    @dimbleby

    if you know how to fix it, submit a merge request!

    (personally I'd like to see poetry shell removed altogether, anyway I wouldn't expect that waiting for someone else to fix such things is likely to be a successful strategy)

  5. owittek commented on May 2, 2023

    @owittek
    Author

    I've actually skimmed the code for poetry shell but I didn't look for where the emulate command is being invoked. I'll try to confirm my suspicion later on & if it's true I'll also look more in-depth into the source code.

  6. symplrdudley commented on Aug 5, 2026

    @symplrdudley

    I also noticed this when I would use ZSH to load the poetry and poetry-env plugins, then when I cd'd to a directory with a Poetry pyproject.toml, it would initialize that env, then when I would launch tmux, and other tmux sessions, every following tmux session would use/source that initial poetry env if I were in a Poetry controlled repository.

    I've since removed the poetry-env ZSH plugin, and it works as I historically expected. While a minor inconvenience, it's back to my original workflow, which is not bad. Builds muscle memory.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions