def _convert_to_pyz(model: zipfile.ZipFile,
                        output_file_path: str,
                        interpreter="/usr/bin/env python3") -> str:
        """
        Convert the given zip model into an valid executable Python ZIP Application

        # Arguments
            model (ZipFile): Model zip file
            output_file_path (string): Path to save the model.
            interpreter (string): Interpreter to use as shebang (optional)

        # Returns
        Full path to the converted model
        """
        # https://legacy.python.org/dev/peps/pep-0441/
        log.debug(
            "Start conversion to PYZ")  # Silent logging since used as default
        model_temp_folder = tempfile.mkdtemp()

        if isinstance(model, UnifiedModel):
            saved_model = model.save(
                os.path.join(model_temp_folder, str(model)))
        elif os.path.exists(str(model)):
            saved_model = str(model)
        else:
            raise Exception("Could not find model for: " + str(model))

        if sys.version_info >= (3, 0):
            import zipapp
            zipapp.create_archive(saved_model, output_file_path, interpreter)
        else:
            # add shebang to model zip manually
            with open(output_file_path, 'wb') as pyz_file:
                pyz_file.write('#!' + str(interpreter) + "\n")
                with open(saved_model, 'rb') as model_zip:
                    shutil.copyfileobj(model_zip, pyz_file)
            os.chmod(output_file_path, 0o755)
            os.unlink(saved_model)

        shutil.rmtree(model_temp_folder)

        log.debug("Conversion to PYZ successful: " +
                  output_file_path)  # Silent logging since used as default
        return output_file_path