Нужно обернуть словарь в types.MappingProxyType:
import types
d = {'a': 1, 'b': 2}
ro_d = types.MappingProxyType(d)
ro_d['a'] # 1
ro_d['a'] = 3 # TypeError