'What I get an attribute error from plotly-dash in PYTHON?

Here You can see a Colab code. I basically try to run those codes but I get this error.

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-16-1b48c937269f> in <module>()
----> 1 macrodemos.ARMA()

3 frames
/usr/local/lib/python3.7/dist-packages/dash/_utils.py in __setitem__(self, key, val)
    156 
    157     # pylint: disable=inconsistent-return-statements
--> 158     def first(self, *names):
    159         for name in names:
    160             value = self.get(name)

AttributeError: ('Read-only: can only be set in the Dash constructor or during init_app()', 'requests_pathname_prefix')

I have no idea about this actually and I am not an expert. Could you please explain the problem? and a solution if you have any. Thanks



Solution 1:[1]

I was able to fix this error by following the recommendations in the error message pasted here for reference,

AttributeError: ('Read-only: can only be set in the Dash constructor or during init_app()', 'requests_pathname_prefix')

The solution is to only set the Dash config when you first initialize the app application instead of using app.config.update according to the new version of Dash.

So instead of something like this which is trying to update a read-only variable,

app.config.update({
    'requests_pathname_prefix': '/dash/' # wrong, will cause read-only error
})

You could do,

app = dash.Dash(
    :
    requests_pathname_prefix='/dash/')

Which sets those variables when it originally was defined so there will be no read-only error.

This answer might not fully address the original poster's concerns because after looking at the Colab notebook, the library of concern is macrodemos which needs to be updated to be compatible with the newest version of Dash.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Hammad