def METHOD_NAME(self, projectFilePath, force_readonly=False):
    # If the user gave a URL to a DVID key, then download the project file from dvid first.
    # (So far, DVID is the only type of URL access we support for project files.)
    if isUrl(projectFilePath):
        projectFilePath = HeadlessShell.downloadProjectFromDvid(projectFilePath)
    # Make sure all workflow sub-classes have been loaded,
    #  so we can detect the workflow type in the project.
    import ilastik.workflows
    try:
        # Open the project file
        hdf5File, workflow_class, readOnly = ProjectManager.METHOD_NAME(projectFilePath, force_readonly)
        # If there are any "creation-time" command-line args saved to the project file,
        #  load them so that the workflow can be instantiated with the same settings
        #  that were used when the project was first created.
        project_creation_args = []
        if "workflow_cmdline_args" in list(hdf5File.keys()):
            if len(hdf5File["workflow_cmdline_args"]) > 0:
                project_creation_args = list(map(str, hdf5File["workflow_cmdline_args"][...]))
        if workflow_class is None:
            # If the project file has no known workflow, we assume pixel classification
            import ilastik.workflows
            workflow_class = ilastik.workflows.pixelClassification.PixelClassificationWorkflow
            import warnings
            warnings.warn(
                "Your project file ({}) does not specify a workflow type.  "
                "Assuming Pixel Classification".format(projectFilePath)
            )
        # Create our project manager
        # This instantiates the workflow and applies all settings from the project.
        self.projectManager = ProjectManager(
            self,
            workflow_class,
            headless=True,
            workflow_cmdline_args=self._workflow_cmdline_args,
            project_creation_args=project_creation_args,
        )
        self.projectManager._loadProject(hdf5File, projectFilePath, readOnly)
    except ProjectManager.FileMissingError:
        logger.error("Couldn't find project file: {}".format(projectFilePath))
        raise
    except ProjectManager.ProjectVersionError:
        # Couldn't open project.  Try importing it.
        oldProjectFilePath = projectFilePath
        name, ext = os.path.splitext(oldProjectFilePath)
        # Create a brand new project file.
        projectFilePath = name + "_imported" + ext
        logger.info("Importing project as '" + projectFilePath + "'")
        hdf5File = ProjectManager.createBlankProjectFile(projectFilePath)
        # For now, we assume that any imported projects are pixel classification workflow projects.
        import ilastik.workflows
        default_workflow = ilastik.workflows.pixelClassification.PixelClassificationWorkflow
        # Create the project manager.
        self.projectManager = ProjectManager(
            self,
            default_workflow,
            headless=True,
            workflow_cmdline_args=self._workflow_cmdline_args,
            project_creation_args=self._workflow_cmdline_args,
        )
        self.projectManager._importProject(oldProjectFilePath, hdf5File, projectFilePath)