{"record":{"id":"221ca303daf1b25b","repo":"open-mmlab/mmdetection","slug":"failed-to-import-cityscapesscripts-please-try-to-221ca3","errorCode":null,"errorMessage":"Failed to import `cityscapesscripts`.Please try to install official cityscapesscripts by \"pip install cityscapesscripts\"","messagePattern":"Failed to import `cityscapesscripts`\\.Please try to install official cityscapesscripts by \"pip install cityscapesscripts\"","errorType":"exception","errorClass":"RuntimeError","httpStatus":null,"severity":"error","filePath":"mmdet/evaluation/metrics/cityscapes_metric.py","lineNumber":70,"sourceCode":"        file_client_args (dict, optional): Arguments to instantiate the\n            corresponding backend in mmdet <= 3.0.0rc6. Defaults to None.\n        backend_args (dict, optional): Arguments to instantiate the\n            corresponding backend. Defaults to None.\n    \"\"\"\n    default_prefix: Optional[str] = 'cityscapes'\n\n    def __init__(self,\n                 outfile_prefix: str,\n                 seg_prefix: Optional[str] = None,\n                 format_only: bool = False,\n                 collect_device: str = 'cpu',\n                 prefix: Optional[str] = None,\n                 dump_matches: bool = False,\n                 file_client_args: dict = None,\n                 backend_args: dict = None) -> None:\n\n        if not HAS_CITYSCAPESAPI:\n            raise RuntimeError('Failed to import `cityscapesscripts`.'\n                               'Please try to install official '\n                               'cityscapesscripts by '\n                               '\"pip install cityscapesscripts\"')\n        super().__init__(collect_device=collect_device, prefix=prefix)\n\n        self.tmp_dir = None\n        self.format_only = format_only\n        if self.format_only:\n            assert outfile_prefix is not None, 'outfile_prefix must be not'\n            'None when format_only is True, otherwise the result files will'\n            'be saved to a temp directory which will be cleaned up at the end.'\n        else:\n            assert seg_prefix is not None, '`seg_prefix` is necessary when '\n            'computing the CityScapes metrics'\n\n        if outfile_prefix is None:\n            self.tmp_dir = tempfile.TemporaryDirectory()\n            self.outfile_prefix = osp.join(self.tmp_dir.name, 'results')","sourceCodeStart":52,"sourceCodeEnd":88,"githubUrl":"https://github.com/open-mmlab/mmdetection/blob/cfd5d3a985b0249de009b67d04f37263e11cdf3d/mmdet/evaluation/metrics/cityscapes_metric.py#L52-L88","documentation":"CityscapesMetric.__init__ eagerly checks that cityscapesscripts is importable and raises RuntimeError at construction time (not eval time) if the optional dependency is missing.","triggerScenarios":"Instantiating CityscapesMetric in a config without cityscapesscripts installed; the import fails at mmdet import time so HAS_CITYSCAPESAPI is False.","commonSituations":"Training scripts that build metrics in eval hooks crashing on configs with CityscapesMetric; CI environments without optional extras.","solutions":["pip install cityscapesscripts","Verify import: python -c \"from cityscapesscripts.evaluation import evalPixelLevelSemanticLabeling\"","If Cityscapes official metric is not needed, replace with CocoMetric in the config"],"exampleFix":"# before\nval_metric = dict(type='CityscapesMetric')  # RuntimeError at build\n# after\n# after installing cityscapesscripts:\nval_metric = dict(type='CityscapesMetric')","handlingStrategy":"validation","validationCode":"from mmdet.evaluation.metrics.cityscapes_metric import HAS_CITYSCAPESAPI\nassert HAS_CITYSCAPESAPI, 'pip install cityscapesscripts before using CityscapesMetric'","typeGuard":null,"tryCatchPattern":"try:\n    CityscapesMetric()\nexcept RuntimeError as e:\n    if 'cityscapesscripts' in str(e):\n        raise SystemExit('Install cityscapesscripts or switch to CocoMetric')\n    raise","preventionTips":["Install cityscapesscripts before building configs containing CityscapesMetric","Conditionally choose metric class based on dependency availability"],"tags":["cityscapes","missing-dependency","mmdetection","metric-init"],"backgroundTag":"missing-optional-dependency","analyzedSha":"cfd5d3a985b0249de009b67d04f37263e11cdf3d","analyzedAt":"2026-08-27T20:54:20.183Z","schemaVersion":2},"datasetVersion":"2026-08-28T00:17:15.603Z"}