Error in dash-multi-page-app-demos

The dash multipage demo doesn’t work for me. I get an error like this on my screen.
Here’s the background callback with cache.

dash multipage demo

Hi @Osako

Please check the dependencies – the caching demo requires:

dash>=2.6.1
Flask-Caching>= 2.0.1
diskcache>=5.2.1
numpy
pandas
redis

I checked but it doesn’t work.
It happens when opening the example2 and example3 pages.

I’m still getting the error.
Anyone know a solution?

@Osako

When I run it, I don’t get any errors. It might be an issue with Windows.
@adamschroeder do you have any suggestions?

hi @Osako Hi @AnnMarieW
I have a windows machine. I git cloned the repo and installed the dependencies that Ann mentioned. The multi_page_cache_background_callback app works well. I didn’t get any errors.

1 Like

Sorry again.
my misunderstanding.
this problem still persists

I still get an error
Help me

hi @Osako
not sure what else can be done. What does your error message say?

Sorry for the late reply.
I get an error on the first action.
For example, if you press the run job button, pycharm will give you this error.

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\multiprocess\spawn.py", line 116, in spawn_main
    exitcode = _main(fd, parent_sentinel)
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\multiprocess\spawn.py", line 126, in _main
    self = reduction.pickle.load(from_parent)
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\dill\_dill.py", line 272, in load
    return Unpickler(file, ignore=ignore, **kwds).load()
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\dill\_dill.py", line 419, in load
    obj = StockUnpickler.load(self)
EOFError: Ran out of input

The browser gives this error.

Traceback (most recent call last):
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\flask\app.py", line 1820, in full_dispatch_request
    rv = self.dispatch_request()
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\flask\app.py", line 1796, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\dash\dash.py", line 1274, in dispatch
    ctx.run(
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\dash\_callback.py", line 362, in add_context
    job = callback_manager.call_job_fn(
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\dash\long_callback\managers\diskcache_manager.py", line 125, in call_job_fn
    proc.start()
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\multiprocess\process.py", line 121, in start
    self._popen = self._Popen(self)
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\multiprocess\context.py", line 224, in _Popen
    return _default_context.get_context().Process._Popen(process_obj)
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\multiprocess\context.py", line 327, in _Popen
    return Popen(process_obj)
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\multiprocess\popen_spawn_win32.py", line 93, in __init__
    reduction.dump(process_obj, to_child)
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\multiprocess\reduction.py", line 63, in dump
    ForkingPickler(file, protocol, *args, **kwds).dump(obj)
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\dill\_dill.py", line 394, in dump
    StockPickler.dump(self, obj)
  File "C:\Users\osako\AppData\Local\Programs\Python\Python39\lib\pickle.py", line 487, in dump
    self.save(obj)
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\dill\_dill.py", line 388, in save
    StockPickler.save(self, obj, save_persistent_id)
  File "C:\Users\osako\AppData\Local\Programs\Python\Python39\lib\pickle.py", line 603, in save
    self.save_reduce(obj=obj, *rv)
  File "C:\Users\osako\AppData\Local\Programs\Python\Python39\lib\pickle.py", line 717, in save_reduce
    save(state)
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\dill\_dill.py", line 388, in save
    StockPickler.save(self, obj, save_persistent_id)
  File "C:\Users\osako\AppData\Local\Programs\Python\Python39\lib\pickle.py", line 560, in save
    f(self, obj)  # Call unbound method with explicit self
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\dill\_dill.py", line 1186, in save_module_dict
    StockPickler.save_dict(pickler, obj)
  File "C:\Users\osako\AppData\Local\Programs\Python\Python39\lib\pickle.py", line 971, in save_dict
    self._batch_setitems(obj.items())
  File "C:\Users\osako\AppData\Local\Programs\Python\Python39\lib\pickle.py", line 997, in _batch_setitems
    save(v)
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\dill\_dill.py", line 388, in save
    StockPickler.save(self, obj, save_persistent_id)
  File "C:\Users\osako\AppData\Local\Programs\Python\Python39\lib\pickle.py", line 560, in save
    f(self, obj)  # Call unbound method with explicit self
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\dill\_dill.py", line 1824, in save_function
    _save_with_postproc(pickler, (_create_function, (
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\dill\_dill.py", line 1089, in _save_with_postproc
    pickler.save_reduce(*reduction)
  File "C:\Users\osako\AppData\Local\Programs\Python\Python39\lib\pickle.py", line 692, in save_reduce
    save(args)
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\dill\_dill.py", line 388, in save
    StockPickler.save(self, obj, save_persistent_id)
  File "C:\Users\osako\AppData\Local\Programs\Python\Python39\lib\pickle.py", line 560, in save
    f(self, obj)  # Call unbound method with explicit self
  File "C:\Users\osako\AppData\Local\Programs\Python\Python39\lib\pickle.py", line 886, in save_tuple
    save(element)
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\dill\_dill.py", line 388, in save
    StockPickler.save(self, obj, save_persistent_id)
  File "C:\Users\osako\AppData\Local\Programs\Python\Python39\lib\pickle.py", line 560, in save
    f(self, obj)  # Call unbound method with explicit self
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\dill\_dill.py", line 1824, in save_function
    _save_with_postproc(pickler, (_create_function, (
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\dill\_dill.py", line 1084, in _save_with_postproc
    pickler._batch_setitems(iter(source.items()))
  File "C:\Users\osako\AppData\Local\Programs\Python\Python39\lib\pickle.py", line 997, in _batch_setitems
    save(v)
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\dill\_dill.py", line 388, in save
    StockPickler.save(self, obj, save_persistent_id)
  File "C:\Users\osako\AppData\Local\Programs\Python\Python39\lib\pickle.py", line 603, in save
    self.save_reduce(obj=obj, *rv)
  File "C:\Users\osako\AppData\Local\Programs\Python\Python39\lib\pickle.py", line 687, in save_reduce
    save(cls)
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\dill\_dill.py", line 388, in save
    StockPickler.save(self, obj, save_persistent_id)
  File "C:\Users\osako\AppData\Local\Programs\Python\Python39\lib\pickle.py", line 560, in save
    f(self, obj)  # Call unbound method with explicit self
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\dill\_dill.py", line 1698, in save_type
    _save_with_postproc(pickler, (_create_type, (
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\dill\_dill.py", line 1070, in _save_with_postproc
    pickler.save_reduce(*reduction, obj=obj)
  File "C:\Users\osako\AppData\Local\Programs\Python\Python39\lib\pickle.py", line 692, in save_reduce
    save(args)
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\dill\_dill.py", line 388, in save
    StockPickler.save(self, obj, save_persistent_id)
  File "C:\Users\osako\AppData\Local\Programs\Python\Python39\lib\pickle.py", line 560, in save
    f(self, obj)  # Call unbound method with explicit self
  File "C:\Users\osako\AppData\Local\Programs\Python\Python39\lib\pickle.py", line 901, in save_tuple
    save(element)
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\dill\_dill.py", line 388, in save
    StockPickler.save(self, obj, save_persistent_id)
  File "C:\Users\osako\AppData\Local\Programs\Python\Python39\lib\pickle.py", line 560, in save
    f(self, obj)  # Call unbound method with explicit self
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\dill\_dill.py", line 1186, in save_module_dict
    StockPickler.save_dict(pickler, obj)
  File "C:\Users\osako\AppData\Local\Programs\Python\Python39\lib\pickle.py", line 971, in save_dict
    self._batch_setitems(obj.items())
  File "C:\Users\osako\AppData\Local\Programs\Python\Python39\lib\pickle.py", line 997, in _batch_setitems
    save(v)
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\dill\_dill.py", line 388, in save
    StockPickler.save(self, obj, save_persistent_id)
  File "C:\Users\osako\AppData\Local\Programs\Python\Python39\lib\pickle.py", line 578, in save
    rv = reduce(self.proto)
TypeError: cannot pickle '_abc._abc_data' object

@Osako,

What happens if you change your dill version to 3.5.1 vs 3.6?

The version of dill was 0.3.6.
After changing the dill version to 0.3.5.1, the browser error is no longer displayed, but an error occurs in pycharm.

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\multiprocess\spawn.py", line 116, in spawn_main
    exitcode = _main(fd, parent_sentinel)
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\multiprocess\spawn.py", line 126, in _main
    self = reduction.pickle.load(from_parent)
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\dill\_dill.py", line 373, in load
    return Unpickler(file, ignore=ignore, **kwds).load()
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\dill\_dill.py", line 646, in load
    obj = StockUnpickler.load(self)
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\dash_bootstrap_components\__init__.py", line 50, in __getattr__
    if name in self.deprecated:
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\dash_bootstrap_components\__init__.py", line 50, in __getattr__
    if name in self.deprecated:
  File "C:\Users\osako\PycharmProjects\pythonProject2\venv\lib\site-packages\dash_bootstrap_components\__init__.py", line 50, in __getattr__
    if name in self.deprecated:
  [Previous line repeated 991 more times]
RecursionError: maximum recursion depth exceeded

Are you using python 3.10?

I am using python3.9.

Now I use python3.10 and I get the same error.

Looks like this issue has been around for a while:

They havent made the fix just yet.

Thank you for your detailed explanation.
I would like to wait patiently.

It looks like < 3.6 will get you the caching minus the python console logs, lol.

3.6 will just error out.

I’m a newbie and don’t understand what you mean. I’m really sorry. should i wait?

I dont know how long they will take to patch this issue.

You can gain the benefit of caching with an older version of dill, it will just print error messages to the console but it should cache all the same.