pypa / pipx

Install and Run Python Applications in Isolated Environments
https://pipx.pypa.io
MIT License
10.23k stars 411 forks source link

Feature request: inspect interactively after `pipx run script.py` like `python -i script.py` #1456

Open ftnext opened 3 months ago

ftnext commented 3 months ago

Thank you very much for your awesome work. pipx is a great tool for me to run python scripts with inline script metadata (PEP 723).

How would this feature be useful?

I'd like to inspect interactively after pipx run script.py like python -i. https://docs.python.org/3/using/cmdline.html#cmdoption-i

% pipx run --inspect script.py
>>>

% pipx run --inspect --no-cache script.py
>>>

Describe the solution you'd like

I will send pull request.

Describe alternatives you've considered

I read the source code(1) and tried to set the environment variable PYTHONINSPECT as a workaround. https://docs.python.org/3/using/cmdline.html#envvar-PYTHONINSPECT It often works fine, but when pipx creates a virtual environment(2), it causes for pipx for hanging.

(1): https://github.com/pypa/pipx/blob/1.6.0/src/pipx/util.py#L377-L390 (2): https://github.com/pypa/pipx/blob/1.6.0/src/pipx/venv.py#L163-L167

% PYTHONINSPECT=1 pipx run script.py  # this works
>>>

% PYTHONINSPECT=1 pipx run --no-cache script.py  # Hang
creating virtual environment

(FYI) References I wrote my blog (Sorry, these are Japanese)