Skip to content

Run python file in pipenv environment fails #4245

@DonJayamanne

Description

@DonJayamanne
  • Use pipenv for current environment
  • Run python file in terminal
    • Open python file , right click and use the menu option Run Python file in terminal
    • The terminal will now open automatically
    • Python Extension will send the text pipenv shell to activate the environment in the terminal
    • The python extension will send the text <python interpreter> <file name> to the terminal
    • Unfortunately there's a race condition here, pipenv shell has not yet completed, and the commands sent later get swallowed up
  • End result, file doesn't run in terminal

Causes:

  • There's no way to determine when terminal has completed processing previously sent commands.
  • VSC is sending messages to the terminal, when its busy

Solutions:

  • Python extension adds a delay between the two commands being sent to the terminal (this is what we do today). However pipenv shell takes longer than other activation routines, hence we need a much longer delay (i.e. a bigger magic number), a work around.
  • Or, VSC provides some api to let us know the terminal is ready to accept input.

microsoft/vscode#67693

Metadata

Metadata

Assignees

Labels

area-terminalbugIssue identified by VS Code Team member as probable bugneeds PRReady to be worked on

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions