Hi,

I use gunicorn in my venv

I have quite few venv that run gunicorn.

I would like to reuse gunicorn for other venv

I launch my web application like this

#PWD = venv dir
source ./bin/activate
gunicorn A_WebApp:app
#A_WebApp is my python file A_WebApp.py

I supposes that gunicorn is a shell program ? if yes I should use $PATH ?
or gunicorn is a Python program only ? and then what I should do to use gunicorn in another venv ?

Thanks.

  • _____@lemm.ee
    link
    fedilink
    English
    arrow-up
    4
    ·
    3 months ago

    If A_WebApp is truly the python file and app is some python symbol then you should be able to make gunicorn in another venv and call your script as such: path/to/venv/bin/python gunicorn A_Web_App:app

    • SpongeB0B@programming.devOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      3 months ago

      Thank you ! it works !

      Actually this is working :

      path/to/venv/bin/gunicorn A_Web_App:app
      

      Some other poster, claim it’s dirty… but which problems could it generate ? (if any)

      Thanks all !!!

      • _____@lemm.ee
        link
        fedilink
        English
        arrow-up
        1
        ·
        3 months ago

        I don’t think it’s dirty if you manage your requirements across these environments with care, but I’d ask for what they mean

  • fraksken@infosec.pub
    link
    fedilink
    arrow-up
    4
    arrow-down
    1
    ·
    edit-2
    3 months ago

    It’s possible to make the venv portable, versionize it, archive it and deploy at boot the latest version. It’s architecture dependent though, so if you deploy on multiple archs, you will need to build for each.

    Edit: gunicorn is part of the venv. All you need to do after deploying gunicorn is activating the venv and running your server.

    You can also have the archive tun through several vulnerability checkers.

  • NostraDavid@programming.dev
    link
    fedilink
    arrow-up
    1
    ·
    3 months ago

    Use pip to install pipx, use pipx to install gunicorn to make it available globally. Pipx is meant to install applications as it will install each in their own venv, whereas pip will install them in a single global env.

    Makes sure gunicorn isn’t installed in your venvs, so when you run them, they’ll use the pipx installed one.

  • FizzyOrange@programming.dev
    link
    fedilink
    arrow-up
    3
    arrow-down
    2
    ·
    3 months ago

    I wouldn’t recommend it. Installing Python packages not in a venv is asking for trouble. Why do you care anyway?