Repository: open-compass/opencompass
Issue: [Bug] Error occurred when running the BBH dataset
Root cause: Interface Contract Mismatch

### Prerequisite

- [X] I have searched [Issues](https://github.com/open-compass/opencompass/issues/) and [Discussions](https://github.com/open-compass/opencompass/discussions) but cannot get the expected help.
- [X] The bug has not been fixed in the [latest version](https://github.com/open-compass/opencompass).

### Type

I'm evaluating with the officially supported tasks/models/datasets.

### Environment

```{'CUDA available': True,
 'CUDA_HOME': '/usr/local/cuda',
 'GCC': 'gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0',
 'GPU 0,1,2,3': 'NVIDIA A40',
 'MMEngine': '0.10.2',
 'NVCC': 'Cuda compilation tools, release 11.8, V11.8.89',
 'OpenCV': '4.9.0',
 'PyTorch': '2.0.1+cu117',
 'PyTorch compiling details': 'PyTorch built with:\n'
                              '  - GCC 9.3\n'
                              '  - C++ Version: 201703\n'
                              '  - Intel(R) oneAPI Math Kernel Library Version '
                              '2022.2-Product Build 20220804 for Intel(R) 64 '
                              'architecture applications\n'
                              '  - Intel(R) MKL-DNN v2.7.3 (Git Hash '
                              '6dbeffbae1f23cbbeae17adb7b5b13f1f37c080e)\n'
                              '  - OpenMP 201511 (a.k.a. OpenMP 4.5)\n'
                              '  - LAPACK is enabled (usually provided by '
                              'MKL)\n'
                              '  - NNPACK is enabled\n'
                              '  - CPU capability usage: AVX2\n'
                              '  - CUDA Runtime 11.7\n'
                              '  - NVCC architecture flags: '
                              '-gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_80,code=sm_80;-gencode;arch=compute_86,code=sm_86\n'
                              '  - CuDNN 8.5\n'
                              '  - Magma 2.6.1\n'
                              '  - Build settings: BLAS_INFO=mkl, '
                              'BUILD_TYPE=Release, CUDA_VERSION=11.7, '
                              'CUDNN_VERSION=8.5.0, '
                              'CXX_COMPILER=/opt/rh/devtoolset-9/root/usr/bin/c++, '
                              'CXX_FLAGS= -D_GLIBCXX_USE_CXX11_ABI=0 '
                              '-fabi-version=11 -Wno-deprecated '
                              '-fvisibility-inlines-hidden -DUSE_PTHREADPOOL '
                              '-DNDEBUG -DUSE_KINETO -DLIBKINETO_NOROCTRACER '
                              '-DUSE_FBGEMM -DUSE_QNNPACK '
                              '-DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK '
                              '-DSYMBOLICATE_MOBILE_DEBUG_HANDLE -O2 -fPIC '
                              '-Wall -Wextra -Werror=return-type '
                              '-Werror=non-virtual-dtor -Werror=bool-operation '
                              '-Wnarrowing -Wno-missing-field-initializers '
                              '-Wno-type-limits -Wno-array-bounds '
                              '-Wno-unknown-pragmas -Wunused-local-typedefs '
                              '-Wno-unused-parameter -Wno-unused-function '
                              '-Wno-unused-result -Wno-strict-overflow '
                              '-Wno-strict-aliasing '
                              '-Wno-error=deprecated-declarations '
                              '-Wno-stringop-overflow -Wno-psabi '
                              '-Wno-error=pedantic -Wno-error=redundant-decls '
                              '-Wno-error=old-style-cast '
                              '-fdiagnostics-color=always -faligned-new '
                              '-Wno-unused-but-set-variable '
                              '-Wno-maybe-uninitialized -fno-math-errno '
                              '-fno-trapping-math -Werror=format '
                              '-Werror=cast-function-type '
                              '-Wno-stringop-overflow, LAPACK_INFO=mkl, '
                              'PERF_WITH_AVX=1, PERF_WITH_AVX2=1, '
                              'PERF_WITH_AVX512=1, '
                              'TORCH_DISABLE_GPU_ASSERTS=ON, '
                              'TORCH_VERSION=2.0.1, USE_CUDA=ON, USE_CUDNN=ON, '
                              'USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, '
                              'USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, '
                              'USE_MPI=OFF, USE_NCCL=1, USE_NNPACK=ON, '
                              'USE_OPENMP=ON, USE_ROCM=OFF, \n',
 'Python': '3.10.10 (main, Sep 18 2023, 12:18:03) [GCC 9.4.0]',
 'TorchVision': '0.15.2+cu117',
 'numpy_random_seed': 2147483648,
 'opencompass': '0.2.0+c0d725a',
 'sys.platform': 'linux'}```

### Reproduces the problem - code/configuration sample

```from .datasets.bbh.bbh_gen import bbh_datasets```

### Reproduces the problem - command or script

```run bbh datasets```

### Reproduces the problem - error message

```File "/mnt/home/10293467/project/code/opencompass/.venv/lib/python3.10/site-packages/mmengine/config/config.py", line 488, in fromfile
    cfg_dict, imported_names = Config._parse_lazy_import(filename)
  File "/mnt/home/10293467/project/code/opencompass/.venv/lib/python3.10/site-packages/mmengine/config/config.py", line 1075, in _parse_lazy_import
    _base_cfg_dict, _base_imported_names = Config._parse_lazy_import(  # noqa: E501
  File "/mnt/home/10293467/project/code/opencompass/.venv/lib/python3.10/site-packages/mmengine/config/config.py", line 1075, in _parse_lazy_import
    _base_cfg_dict, _base_imported_names = Config._parse_lazy_import(  # noqa: E501
  File "/mnt/home/10293467/project/code/opencompass/.venv/lib/python3.10/site-packages/mmengine/config/config.py", line 1103, in _parse_lazy_import
    exec(
  File "configs/datasets/bbh/bbh_gen_5b92b0.py", line 44, in <module>
    with open(os.path.join(os.path.dirname(__file__), 'lib_prompt', f'{_name}.txt'), 'r') as f:
  File "/mnt/home/10293467/project/code/opencompass/.venv/lib/python3.10/site-packages/mmengine/config/lazy.py", line 205, in __call__
    raise RuntimeError()
RuntimeError
```

when the cfg file contains "os.path.join" operator, a runtime error occourred when mmengine load this cfg file, maybe I use the incorrect mmengine version? I tried 0.10.2 and 0.9.0, the same issue occurred.
Thanks. 

### Other information

_No response_

the `.build` method will return original object, so change `os.path.join` to `os.path.join.build()`, similarly others, will fix it ,  ref [LazyAttr](https://github.com/open-mmlab/mmengine/blob/f79111ecc0eea9fbb1b7d1361a79f7062ca1ac10/mmengine/config/lazy.py#L135)

@niexufei Bro, have you solved this problem? How to fix it? I try to change os.path.join to os.path.join.build(), it doesn't work

why is it not fixed yet????????

> the `.build` method will return original object, so change `os.path.join` to `os.path.join.build()`, similarly others, will fix it , ref [LazyAttr](https://github.com/open-mmlab/mmengine/blob/f79111ecc0eea9fbb1b7d1361a79f7062ca1ac10/mmengine/config/lazy.py#L135)

it works, thank you 

> > the `.build` method will return original object, so change `os.path.join` to `os.path.join.build()`, similarly others, will fix it , ref [LazyAttr](https://github.com/open-mmlab/mmengine/blob/f79111ecc0eea9fbb1b7d1361a79f7062ca1ac10/mmengine/config/lazy.py#L135)
> 
> it works, thank you

what's the root cause for this issue?  It was not fixed with the change

For future reference, replace the original os.path.join with os.path.join.build() as shown below. The build() method generates a new function.


`with open(os.path.join.build()(os.path.dirname.build()(__file__), 'lib_prompt', f'{_name}.txt'), 'r') as f:`