open-mmlab / mmsegmentation

OpenMMLab Semantic Segmentation Toolbox and Benchmark.
https://mmsegmentation.readthedocs.io/en/main/
Apache License 2.0
7.68k stars 2.53k forks source link

No module named 'ftfy' #3704

Closed plashchynski closed 2 weeks ago

plashchynski commented 2 weeks ago

Describe the bug A clear and concise description of what the bug is.

Reproduction

  1. What command or script did you run?
pip install mmcv==2.0.0rc4 -f https://download.openmmlab.com/mmcv/dist/cpu/torch1.13/index.html
pip install "mmsegmentation>=1.0.0"

Then, in the notebook:

from mmseg.apis import inference_model, init_model, show_result_pyplot

Error traceback

{
    "name": "ModuleNotFoundError",
    "message": "No module named 'ftfy'",
    "stack": "---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
Cell In[3], line 1
----> 1 from mmseg.apis import inference_model, init_model, show_result_pyplot

File ~/dev/processor/.venv/lib/python3.11/site-packages/mmseg/apis/__init__.py:2
      1 # Copyright (c) OpenMMLab. All rights reserved.
----> 2 from .inference import inference_model, init_model, show_result_pyplot
      3 from .mmseg_inferencer import MMSegInferencer
      4 from .remote_sense_inferencer import RSImage, RSInferencer

File ~/dev/processor/.venv/lib/python3.11/site-packages/mmseg/apis/inference.py:14
     11 from mmengine.runner import load_checkpoint
     12 from mmengine.utils import mkdir_or_exist
---> 14 from mmseg.models import BaseSegmentor
     15 from mmseg.registry import MODELS
     16 from mmseg.structures import SegDataSample

File ~/dev/processor/.venv/lib/python3.11/site-packages/mmseg/models/__init__.py:3
      1 # Copyright (c) OpenMMLab. All rights reserved.
      2 from .assigners import *  # noqa: F401,F403
----> 3 from .backbones import *  # noqa: F401,F403
      4 from .builder import (BACKBONES, HEADS, LOSSES, SEGMENTORS, build_backbone,
      5                       build_head, build_loss, build_segmentor)
      6 from .data_preprocessor import SegDataPreProcessor

File ~/dev/processor/.venv/lib/python3.11/site-packages/mmseg/models/backbones/__init__.py:2
      1 # Copyright (c) OpenMMLab. All rights reserved.
----> 2 from .beit import BEiT
      3 from .bisenetv1 import BiSeNetV1
      4 from .bisenetv2 import BiSeNetV2

File ~/dev/processor/.venv/lib/python3.11/site-packages/mmseg/models/backbones/beit.py:19
     16 from torch.nn.modules.utils import _pair as to_2tuple
     18 from mmseg.registry import MODELS
---> 19 from ..utils import PatchEmbed
     20 from .vit import TransformerEncoderLayer as VisionTransformerEncoderLayer
     23 class BEiTAttention(BaseModule):

File ~/dev/processor/.venv/lib/python3.11/site-packages/mmseg/models/utils/__init__.py:2
      1 # Copyright (c) OpenMMLab. All rights reserved.
----> 2 from .basic_block import BasicBlock, Bottleneck
      3 from .embed import PatchEmbed
      4 from .encoding import Encoding

File ~/dev/processor/.venv/lib/python3.11/site-packages/mmseg/models/utils/basic_block.py:10
      7 from torch import Tensor
      9 from mmseg.registry import MODELS
---> 10 from mmseg.utils import OptConfigType
     13 class BasicBlock(BaseModule):
     14     \"\"\"Basic block from `ResNet <https://arxiv.org/abs/1512.03385>`_.
     15 
     16     Args:
   (...)
     28         init_cfg (dict, optional): Initialization config dict. Default: None.
     29     \"\"\"

File ~/dev/processor/.venv/lib/python3.11/site-packages/mmseg/utils/__init__.py:18
     16 from .misc import add_prefix, stack_batch
     17 from .set_env import register_all_modules
---> 18 from .tokenizer import tokenize
     19 from .typing_utils import (ConfigType, ForwardResults, MultiConfig,
     20                            OptConfigType, OptMultiConfig, OptSampleList,
     21                            SampleList, TensorDict, TensorList)
     23 # isort: off

File ~/dev/processor/.venv/lib/python3.11/site-packages/mmseg/utils/tokenizer.py:13
     10 from functools import lru_cache
     11 from typing import List, Union
---> 13 import ftfy
     14 import regex as re
     15 import torch

ModuleNotFoundError: No module named 'ftfy'"
}

Bug fix

Install ftfy manually:

pip install ftfy regex

ftfy and regex are not among dependencies for the mmsegmentation pip

plashchynski commented 2 weeks ago

Another solution is to install mmsegmentation with [all] dependencies:

pip install "mmsegmentation[all]>=1.0.0"