Error building dash-core-components for development

:exclamation: WARNING : English error ahead :smiley:
I really want to contribute to dash-core-compoents and have some issue which I posted here but now I understand some of my mistake

Here’s what I did during the process

  1. conda create -n dash_core python=3.7.3

  2. conda activate dash_core

  3. pip install dash

  4. pip list -v

Package              Version  Location                                                       Installer
-------------------- -------- -------------------------------------------------------------- ---------
attrs                19.1.0   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
certifi              2019.3.9 /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages          
chardet              3.0.4    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
Click                7.0      /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
dash                 0.43.0   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
dash-core-components 0.48.0   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
dash-html-components 0.16.0   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
dash-renderer        0.24.0   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
dash-table           3.7.0    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
decorator            4.4.0    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
Flask                1.0.3    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
Flask-Compress       1.4.0    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
idna                 2.8      /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
ipython-genutils     0.2.0    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
itsdangerous         1.1.0    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
Jinja2               2.10.1   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
jsonschema           3.0.1    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
jupyter-core         4.4.0    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
MarkupSafe           1.1.1    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
nbformat             4.4.0    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
pip                  19.1.1   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages          
plotly               3.10.0   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
pyrsistent           0.15.2   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
pytz                 2019.1   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
requests             2.22.0   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
retrying             1.3.3    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
setuptools           41.0.1   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages          
six                  1.12.0   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
traitlets            4.3.2    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
urllib3              1.25.3   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
Werkzeug             0.15.4   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
wheel                0.33.4   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages 

NOTE dash-core-components is always included when dash is installed via pip

  1. npm i

it runs the following script automatically

> dash-core-components@0.48.0 prepare /home/qrs/Programming/Community/dash-core-components
> npm run build


> dash-core-components@0.48.0 build /home/qrs/Programming/Community/dash-core-components
> npm run build:js && npm run build:py_and_r


> dash-core-components@0.48.0 build:js /home/qrs/Programming/Community/dash-core-components
> webpack --mode production

NOTE : I skipped the step 2 from this CONTRIBUTING.md which requires to run npm run build since it was run automatically after npm i

  1. python setup.py install

output (last few lines):

byte-compiling build/bdist.linux-x86_64/egg/dash_core_components/__init__.py to __init__.cpython-37.pyc
byte-compiling build/bdist.linux-x86_64/egg/dash_core_components/Interval.py to Interval.cpython-37.pyc
byte-compiling build/bdist.linux-x86_64/egg/dash_core_components/Checklist.py to Checklist.cpython-37.pyc
byte-compiling build/bdist.linux-x86_64/egg/dash_core_components/Markdown.py to Markdown.cpython-37.pyc
byte-compiling build/bdist.linux-x86_64/egg/dash_core_components/Upload.py to Upload.cpython-37.pyc
byte-compiling build/bdist.linux-x86_64/egg/dash_core_components/ConfirmDialogProvider.py to ConfirmDialogProvider.cpython-37.pyc
byte-compiling build/bdist.linux-x86_64/egg/dash_core_components/Tabs.py to Tabs.cpython-37.pyc
byte-compiling build/bdist.linux-x86_64/egg/dash_core_components/RadioItems.py to RadioItems.cpython-37.pyc
byte-compiling build/bdist.linux-x86_64/egg/dash_core_components/Slider.py to Slider.cpython-37.pyc
creating build/bdist.linux-x86_64/egg/EGG-INFO
copying dash_core_components.egg-info/PKG-INFO -> build/bdist.linux-x86_64/egg/EGG-INFO
copying dash_core_components.egg-info/SOURCES.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying dash_core_components.egg-info/dependency_links.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying dash_core_components.egg-info/top_level.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
zip_safe flag not set; analyzing archive contents...
dash_core_components.__pycache__.__init__.cpython-37: module references __file__
creating 'dist/dash_core_components-0.48.0-py3.7.egg' and adding 'build/bdist.linux-x86_64/egg' to it
removing 'build/bdist.linux-x86_64/egg' (and everything under it)
Processing dash_core_components-0.48.0-py3.7.egg
creating /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages/dash_core_components-0.48.0-py3.7.egg
Extracting dash_core_components-0.48.0-py3.7.egg to /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages
Adding dash-core-components 0.48.0 to easy-install.pth file

Installed /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages/dash_core_components-0.48.0-py3.7.egg
Processing dependencies for dash-core-components==0.48.0
Finished processing dependencies for dash-core-components==0.48.0
  1. pip list -v

NOTE : dash-core-components location doesn’t change

Package              Version  Location                                                       Installer
-------------------- -------- -------------------------------------------------------------- ---------
attrs                19.1.0   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
certifi              2019.3.9 /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages          
chardet              3.0.4    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
Click                7.0      /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
dash                 0.43.0   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
dash-core-components 0.48.0   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
dash-html-components 0.16.0   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
dash-renderer        0.24.0   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
dash-table           3.7.0    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
decorator            4.4.0    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
Flask                1.0.3    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
Flask-Compress       1.4.0    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
idna                 2.8      /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
ipython-genutils     0.2.0    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
itsdangerous         1.1.0    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
Jinja2               2.10.1   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
jsonschema           3.0.1    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
jupyter-core         4.4.0    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
MarkupSafe           1.1.1    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
nbformat             4.4.0    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
pip                  19.1.1   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages          
plotly               3.10.0   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
pyrsistent           0.15.2   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
pytz                 2019.1   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
requests             2.22.0   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
retrying             1.3.3    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
setuptools           41.0.1   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages          
six                  1.12.0   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
traitlets            4.3.2    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
urllib3              1.25.3   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
Werkzeug             0.15.4   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages pip      
wheel                0.33.4   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages 

Running the my_dash_layout.py works perfectly.

  1. python my_dash_layout.py
# my_dash_layout.py
import dash
import dash_core_components as dcc
import dash_html_components as html

external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']

app = dash.Dash(__name__, external_stylesheets=external_stylesheets)

app.layout = html.Div(children=[
    html.H1(children='Hello Dash'),

    html.Div(children='''
        Dash: A web application framework for Python.
    '''),

    dcc.Graph(
        id='example-graph',
        figure={
            'data': [
                {'x': [1, 2, 3], 'y': [4, 1, 2], 'type': 'bar', 'name': 'SF'},
                {'x': [1, 2, 3], 'y': [2, 4, 5], 'type': 'bar', 'name': u'Montréal'},
            ],
            'layout': {
                'title': 'Dash Data Visualization'
            }
        }
    )
])

if __name__ == '__main__':
    app.run_server(debug=True)

pl1

But uninstalling dash-core-components to use my local “copy” of dash-core-components shows a FileNotFoundError.

  1. pip uninstall dash_core_components

  2. pip list -v

Package              Version  Location                                                                                             Installer
-------------------- -------- ---------------------------------------------------------------------------------------------------- ---------
attrs                19.1.0   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages                                       pip      
certifi              2019.3.9 /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages                                                
chardet              3.0.4    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages                                       pip      
Click                7.0      /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages                                       pip      
dash                 0.43.0   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages                                       pip      
dash-core-components 0.48.0   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages/dash_core_components-0.48.0-py3.7.egg          
dash-html-components 0.16.0   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages                                       pip      
dash-renderer        0.24.0   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages                                       pip      
dash-table           3.7.0    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages                                       pip      
decorator            4.4.0    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages                                       pip      
Flask                1.0.3    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages                                       pip      
Flask-Compress       1.4.0    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages                                       pip      
idna                 2.8      /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages                                       pip      
ipython-genutils     0.2.0    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages                                       pip      
itsdangerous         1.1.0    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages                                       pip      
Jinja2               2.10.1   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages                                       pip      
jsonschema           3.0.1    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages                                       pip      
jupyter-core         4.4.0    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages                                       pip      
MarkupSafe           1.1.1    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages                                       pip      
nbformat             4.4.0    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages                                       pip      
pip                  19.1.1   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages                                                
plotly               3.10.0   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages                                       pip      
pyrsistent           0.15.2   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages                                       pip      
pytz                 2019.1   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages                                       pip      
requests             2.22.0   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages                                       pip      
retrying             1.3.3    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages                                       pip      
setuptools           41.0.1   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages                                                
six                  1.12.0   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages                                       pip      
traitlets            4.3.2    /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages                                       pip      
urllib3              1.25.3   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages                                       pip      
Werkzeug             0.15.4   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages                                       pip      
wheel                0.33.4   /home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages                                  

NOTE : the location now shows the local “copy” of dash_core_components that was installed via python setup.py install

Running the my_dash_layout.py now shows an error about the missing file highlight.pack.js.

  1. python my_dash_layout.py
FileNotFoundError: [Errno 2] No such file or directory: '/home/qrs/anaconda3/envs/dash_core/lib/python3.7/site-packages/dash_core_components-0.48.0-py3.7.egg/dash_core_components/highlight.pack.js'

Screenshot%20from%202019-06-19%2022-36-42