So, I have a python script I’d like to run from time to time from the CLI (on Linux) that resides inside a venv. What’s the recommended/intended way to do this?
Write a wrapper shell script and put it inside a $PATH-accessible directory that activates the virtual environment, runs the python script and deactivates the venv again? This seems a bit convoluted, but I can’t think of a better way.

    • Violet_McQuasional@feddit.uk
      link
      fedilink
      arrow-up
      0
      ·
      5 months ago

      This. I’ve experimented by using pex before and one or two other means of executable python wrappers and they suck. Just do as lakeeffect says.

      • logging_strict@programming.dev
        link
        fedilink
        arrow-up
        1
        ·
        4 months ago

        Just activate the venv and then put it out of your mind. Can activate it with either a relative or absolute path. Doesn’t matter which

      • Andy@programming.dev
        link
        fedilink
        arrow-up
        0
        ·
        4 months ago

        I use my own Zsh project (zpy) to manage venvs stored like ~/.local/share/venvs/HASH-OF-PROJECT-PATH/venv, so use zpy’s vpy function to launch a script with its associated Python executable ad-hoc, or add a full path shebang to the script with zpy’s vpyshebang function.

        vpy and vpyshebang in the docs

        If anyone else is a Zsh fan and has any questions, I’m more than happy to answer or demo.