class EnvDefault(argparse.Action):

    def __init__(self, envvar, required=True, default=None, **kwargs):
        if not default and envvar:
            if envvar in os.environ:
                default = os.environ[envvar]
if required and default:
    required = False
super(EnvDefault, self).__init__(default=default, required=required, **kwargs)

def __call__(self, parser, namespace, values, option_string=None):
    setattr(namespace, self.dest, values)
Установка параметров из переменных среды при использовании argparse