# Totalsegmentator failing with error 120

**URL:** <https://discourse.slicer.org/t/totalsegmentator-failing-with-error-120/34434>\
**Category:** Support\
**Created:** [February 20, 2024, 6:52pm UTC](https://discourse.slicer.org/t/totalsegmentator-failing-with-error-120/34434 "2024-02-20T18:52:39Z")\
**Posts on this page:** 1\
**Showing post:** 11

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [February 20, 2024, 9:53pm UTC](https://discourse.slicer.org/t/totalsegmentator-failing-with-error-120/34434/11 "2024-02-20T21:53:20Z")

</div>

Aha! So, it is not a too old package, but a too recent package.

Unfortunately, developer of `dynamic_network_architectures` broke backward compatibility with a recent update. `ResidualEncoderUNet` package must be imported as `from dynamic_network_architectures.architectures.residual_unet import ResidualEncoderUNet` now, but since this change was snuck into a minor version update (0.2 to 0.4) developer of TotalSegmentator did not suspect anything bad would happen.

As a workaround, you can downgrade `dynamic_network_architectures` package by running this command in the Python console (that I’ll also add to the TotalSegmentator Slicer module):

```python
pip_install('dynamic_network_architectures==0.2.0')

```

I’ve filed a bug report to TotalSegmentator to make sure the incompatibility is fixed properly:

> <https://github.com/wasserth/TotalSegmentator/issues/275>
>
> Recent update of \`dynamic\_network\_architectures\` package contains a backward-inc…ompatible change. \`ResidualEncoderUNet\` class is in a different module now:
> 
> In \`dynamic\_network\_architectures\` version 0.2:
> 
> from dynamic\_network\_architectures.architectures.unet import ResidualEncoderUNet
> 
> In \`dynamic\_network\_architectures\` version 0.4:
> 
> from dynamic\_network\_architectures.architectures.residual\_unet import ResidualEncoderUNet
> 
> This change breaks nnunet, which breaks totalsegmentator.
> 
> Could you update totalsegmentator requirements specification to avoid this incompatible \`dynamic\_network\_architectures\` version until the issue is properly sorted out? For a proper solution, maintainers of nnunet and dynamic\_network\_architectures need to talk.
> 
> 
> Full stack trace:
> 
> \`\`\`
> Traceback (most recent call last):
> File "C:\\Users\\Logan\\AppData\\Local\\slicer.org\\Slicer 5.6.1\\lib\\Python\\Lib\\runpy.py", line 197, in \_run\_module\_as\_main
> return \_run\_code(code, main\_globals, None,
> File "C:\\Users\\Logan\\AppData\\Local\\slicer.org\\Slicer 5.6.1\\lib\\Python\\Lib\\runpy.py", line 87, in \_run\_code
> exec(code, run\_globals)
> File "C:\\Users\\Logan\\AppData\\Local\\slicer.org\\Slicer 5.6.1\\lib\\Python\\Scripts\\TotalSegmentator.exe\\\_\_main\_\_.py", line 7, in \<module\>
> File "C:\\Users\\Logan\\AppData\\Local\\slicer.org\\Slicer 5.6.1\\lib\\Python\\Lib\\site-packages\\totalsegmentator\\bin\\TotalSegmentator.py", line 127, in main
> totalsegmentator(args.input, args.output, args.ml, args.nr\_thr\_resamp, args.nr\_thr\_saving,
> File "C:\\Users\\Logan\\AppData\\Local\\slicer.org\\Slicer 5.6.1\\lib\\Python\\Lib\\site-packages\\totalsegmentator\\python\_api.py", line 293, in totalsegmentator
> seg\_img, ct\_img = nnUNet\_predict\_image(input, output, task\_id, model=model, folds=folds,
> File "C:\\Users\\Logan\\AppData\\Local\\slicer.org\\Slicer 5.6.1\\lib\\Python\\Lib\\site-packages\\totalsegmentator\\nnunet.py", line 375, in nnUNet\_predict\_image
> nnUNetv2\_predict(tmp\_dir, tmp\_dir, tid, model, folds, trainer, tta,
> File "C:\\Users\\Logan\\AppData\\Local\\slicer.org\\Slicer 5.6.1\\lib\\Python\\Lib\\site-packages\\totalsegmentator\\nnunet.py", line 178, in nnUNetv2\_predict
> predict\_from\_raw\_data(dir\_in,
> File "C:\\Users\\Logan\\AppData\\Local\\slicer.org\\Slicer 5.6.1\\lib\\Python\\Lib\\site-packages\\nnunetv2\\inference\\predict\_from\_raw\_data.py", line 159, in predict\_from\_raw\_data
> load\_what\_we\_need(model\_training\_output\_dir, use\_folds, checkpoint\_name)
> File "C:\\Users\\Logan\\AppData\\Local\\slicer.org\\Slicer 5.6.1\\lib\\Python\\Lib\\site-packages\\nnunetv2\\inference\\predict\_from\_raw\_data.py", line 96, in load\_what\_we\_need
> trainer\_class = recursive\_find\_python\_class(join(nnunetv2.\_\_path\_\_\[0\], "training", "nnUNetTrainer"),
> File "C:\\Users\\Logan\\AppData\\Local\\slicer.org\\Slicer 5.6.1\\lib\\Python\\Lib\\site-packages\\nnunetv2\\utilities\\find\_class\_by\_name.py", line 12, in recursive\_find\_python\_class
> m = importlib.import\_module(current\_module + "." + modname)
> File "C:\\Users\\Logan\\AppData\\Local\\slicer.org\\Slicer 5.6.1\\lib\\Python\\Lib\\importlib\\\_\_init\_\_.py", line 127, in import\_module
> return \_bootstrap.\_gcd\_import(name\[level:\], package, level)
> File "\<frozen importlib.\_bootstrap\>", line 1030, in \_gcd\_import
> File "\<frozen importlib.\_bootstrap\>", line 1007, in \_find\_and\_load
> File "\<frozen importlib.\_bootstrap\>", line 986, in \_find\_and\_load\_unlocked
> File "\<frozen importlib.\_bootstrap\>", line 680, in \_load\_unlocked
> File "\<frozen importlib.\_bootstrap\_external\>", line 850, in exec\_module
> File "\<frozen importlib.\_bootstrap\>", line 228, in \_call\_with\_frames\_removed
> File "C:\\Users\\Logan\\AppData\\Local\\slicer.org\\Slicer 5.6.1\\lib\\Python\\Lib\\site-packages\\nnunetv2\\training\\nnUNetTrainer\\nnUNetTrainer.py", line 51, in \<module\>
> from nnunetv2.utilities.get\_network\_from\_plans import get\_network\_from\_plans
> File "C:\\Users\\Logan\\AppData\\Local\\slicer.org\\Slicer 5.6.1\\lib\\Python\\Lib\\site-packages\\nnunetv2\\utilities\\get\_network\_from\_plans.py", line 1, in \<module\>
> from dynamic\_network\_architectures.architectures.unet import PlainConvUNet, ResidualEncoderUNet
> ImportError: cannot import name 'ResidualEncoderUNet' from 'dynamic\_network\_architectures.architectures.unet' 
> \`\`\`

---

_[View the full topic](https://discourse.slicer.org/t/totalsegmentator-failing-with-error-120/34434)._
