pipenv icon indicating copy to clipboard operation
pipenv copied to clipboard

allow "pipenv run" to ignore the virtualenv, or support --system, or allow [scripts] to specify they are 'non-virtualenv'

Open doubledgedboard opened this issue 3 years ago • 0 comments

Is your feature request related to a problem? Please describe.

Similar to #5086

When running pipenv inside a vscode dev container, it is extremely useful to use the [scripts] section along with pipenv run as a common CLI for various project related commands. This is very similar to the npm scripts workflow, which is a great way of encapsulating the run commands for various CI, test, build, etc lifecycle options into a single entry point (npm or pipenv in this case).

However, pipenv run always forces the use of a virtualenv, which means trying to use it in a vscode dev container where you aren't using virtualenvs at all makes it for a frustrating experience.

There's also cases where you don't want or need the virtualenv activated for the lifecycle command, such as running a shell script.

Describe the solution you'd like

I would like to:

  • use --system with pipenv run foo to run the foo script without activating a virtualenv

and/or

  • specify an additional option for an entry in the [scripts] section, to specify it as a 'non-virtualenv' script, meaning it won't activate any virtualenv when running

Describe alternatives you've considered

The current alternative is to use bash scripts or similar as an entry point for lifecycle commands, which means a less consistent interface for developers (e.g. having to document each shell script itself like ./ci/build, rather than just saying "use pipenv run build")

Additional context

py3.10 / linux or mac


I use pipenv on a machine / network that I cannot export the output of pipenv support from, but I'm using the latest version as of the time of this post.

doubledgedboard avatar Apr 28 '22 21:04 doubledgedboard