class_docstr: Flavor backend implementation for the generic python models.
docstr: :param env_root_dir: Root path for conda env. If None, use Conda's default environments
                       directory. Note if this is set, conda package cache path becomes
                       "{env_root_dir}/conda_cache_pkgs" instead of the global package cache
                       path, and pip package cache path becomes
                       "{env_root_dir}/pip_cache_pkgs" instead of the global package cache
                       path.
code: def __init__(
      self,
      config,
      workers=1,
      env_manager=_EnvManager.VIRTUALENV,
      install_mlflow=False,
      create_env_root_dir=False,
      env_root_dir=None,
      **kwargs,
  ):
      """
      :param env_root_dir: Root path for conda env. If None, use Conda's default environments
                           directory. Note if this is set, conda package cache path becomes
                           "{env_root_dir}/conda_cache_pkgs" instead of the global package cache
                           path, and pip package cache path becomes
                           "{env_root_dir}/pip_cache_pkgs" instead of the global package cache
                           path.
      """
      super().__init__(config=config, **kwargs)
      self._nworkers = workers or 1
      if env_manager == _EnvManager.CONDA and ENV not in config:
          env_manager = _EnvManager.LOCAL
      self._env_manager = env_manager
      self._install_mlflow = install_mlflow
      self._env_id = (
          os.environ.get("MLFLOW_HOME", VERSION)
          if install_mlflow
          else None
      )
      self._create_env_root_dir = create_env_root_dir
      self._env_root_dir = env_root_dir
      self._environment = None
  
imports: import ctypes
  import logging
  import os
  import pathlib
  import posixpath
  import shlex
  import signal
  import subprocess
  import sys
  import warnings
  from pathlib import Path
  from mlflow.environment_variables import MLFLOW_DISABLE_ENV_CREATION
  from mlflow.exceptions import MlflowException
  from mlflow.models import FlavorBackend
  from mlflow.models.container import ENABLE_MLSERVER
  from mlflow.models.docker_utils import SETUP_MINICONDA, SETUP_PYENV_AND_VIRTUALENV, _build_image, _generate_dockerfile_content, _get_mlflow_install_step
  from mlflow.pyfunc import ENV, _extract_conda_env, _mlflow_pyfunc_backend_predict, mlserver, scoring_server
  from mlflow.tracking.artifact_utils import _download_artifact_from_uri
  from mlflow.utils import env_manager
  from mlflow.utils.conda import get_conda_bin_executable, get_or_create_conda_env
  from mlflow.utils.environment import Environment
  from mlflow.utils.file_utils import get_or_create_nfs_tmp_dir, get_or_create_tmp_dir, path_to_local_file_uri
  from mlflow.utils.nfs_on_spark import get_nfs_cache_root_dir
  from mlflow.utils.process import ShellCommandException, cache_return_value_per_process
  from mlflow.utils.virtualenv import _get_or_create_virtualenv, _get_pip_install_mlflow
  from mlflow.version import VERSION
label_desc: Use image node_id 1 to create a new PyFuncBackend object from inherited base classes: FlavorBackend with example: obj = PyFuncBackend(config, workers, env_manager, install_mlflow, create_env_root_dir, env_root_dir)