conda-forge / kedro-viz-feedstock

A conda-smithy repository for kedro-viz.
BSD 3-Clause "New" or "Revised" License
0 stars 4 forks source link

Missing index.html #3

Open NeroOkwa opened 1 year ago

NeroOkwa commented 1 year ago

Solution to issue cannot be found in the documentation.

Issue

I tried installing Kedro-Viz as per the instruction on conda-forge and got an error message of missing index.html.

These are the steps I followed:

$ conda create -n kedro310-conda python=3.10
$ conda activate kedro310-conda
(kedro310-conda) $ conda install kedro-viz -c conda-forge
(kedro310-conda) $ kedro new --starter=spaceflights
(kedro310-conda) $ cd spaceflights
(kedro310-conda) $ pip install -r src/requirements.txt

This was my error message:

(kedro310-conda) Nero_Okwa@M-C02GJ09NML87 spaceflights % kedro viz
[08/17/23 10:40:17] WARNING  /Users/Nero_Okwa/opt/anaconda3/envs/kedro310-conda/ warnings.py:109
                             lib/python3.10/site-packages/kedro/framework/sessio                
                             n/session.py:266: FutureWarning: ConfigLoader will                 
                             be deprecated in Kedro 0.19. Please use the                        
                             OmegaConfigLoader instead. To consult the                          
                             documentation for OmegaConfigLoader, see here:                     
                             https://docs.kedro.org/en/stable/configuration/adva                
                             nced_configuration.html#omegaconfigloader                          
                               warnings.warn(                                                   

[08/17/23 10:40:37] ERROR    Exception in ASGI application                 httptools_impl.py:440

                             ╭──── Traceback (most recent call last) ────╮                      
                             │ /Users/Nero_Okwa/opt/anaconda3/envs/kedro │                      
                             │ 310-conda/lib/python3.10/site-packages/uv │                      
                             │ icorn/protocols/http/httptools_impl.py:43 │                      
                             │ 5 in run_asgi                             │                      
                             │                                           │                      
                             │   432 │   # ASGI exception wrapper        │                      
                             │   433 │   async def run_asgi(self, app: " │                      
                             │   434 │   │   try:                        │                      
                             │ ❱ 435 │   │   │   result = await app(  #  │                      
                             │   436 │   │   │   │   self.scope, self.re │                      
                             │   437 │   │   │   )                       │                      
                             │   438 │   │   except BaseException as exc │                      
                             │                                           │                      
                             │ /Users/Nero_Okwa/opt/anaconda3/envs/kedro │                      
                             │ 310-conda/lib/python3.10/site-packages/uv │                      
                             │ icorn/middleware/proxy_headers.py:78 in   │                      
                             │ __call__                                  │                      
                             │                                           │                      
                             │   75 │   │   │   │   │   port = 0         │                      
                             │   76 │   │   │   │   │   scope["client"]  │                      
                             │   77 │   │                                │                      
                             │ ❱ 78 │   │   return await self.app(scope, │                      
                             │   79                                      │                      
                             │                                           │                      
                             │ /Users/Nero_Okwa/opt/anaconda3/envs/kedro │                      
                             │ 310-conda/lib/python3.10/site-packages/uv │                      
                             │ icorn/middleware/message_logger.py:86 in  │                      
                             │ __call__                                  │                      
                             │                                           │                      
                             │   83 │   │   except BaseException as exc: │                      
                             │   84 │   │   │   log_text = "%s [%d] Rais │                      
                             │   85 │   │   │   self.logger.trace(log_te │                      
                             │ ❱ 86 │   │   │   raise exc from None      │                      
                             │   87 │   │   else:                        │                      
                             │   88 │   │   │   log_text = "%s [%d] Comp │                      
                             │   89 │   │   │   self.logger.trace(log_te │                      
                             │                                           │                      
                             │ /Users/Nero_Okwa/opt/anaconda3/envs/kedro │                      
                             │ 310-conda/lib/python3.10/site-packages/uv │                      
                             │ icorn/middleware/message_logger.py:82 in  │                      
                             │ __call__                                  │                      
                             │                                           │                      
                             │   79 │   │   log_text = "%s [%d] Started  │                      
                             │   80 │   │   self.logger.trace(log_text,  │                      
                             │   81 │   │   try:                         │                      
                             │ ❱ 82 │   │   │   await self.app(scope, in │                      
                             │   83 │   │   except BaseException as exc: │                      
                             │   84 │   │   │   log_text = "%s [%d] Rais │                      
                             │   85 │   │   │   self.logger.trace(log_te │                      
                             │                                           │                      
                             │ /Users/Nero_Okwa/opt/anaconda3/envs/kedro │                      
                             │ 310-conda/lib/python3.10/site-packages/fa │                      
                             │ stapi/applications.py:276 in __call__     │                      
                             │                                           │                      
                             │   273 │   async def __call__(self, scope: │                      
                             │   274 │   │   if self.root_path:          │                      
                             │   275 │   │   │   scope["root_path"] = se │                      
                             │ ❱ 276 │   │   await super().__call__(scop │                      
                             │   277 │                                   │                      
                             │   278 │   def add_api_route(              │                      
                             │   279 │   │   self,                       │                      
                             │                                           │                      
                             │ /Users/Nero_Okwa/opt/anaconda3/envs/kedro │                      
                             │ 310-conda/lib/python3.10/site-packages/st │                      
                             │ arlette/applications.py:122 in __call__   │                      
                             │                                           │                      
                             │   119 │   │   scope["app"] = self         │                      
                             │   120 │   │   if self.middleware_stack is │                      
                             │   121 │   │   │   self.middleware_stack = │                      
                             │ ❱ 122 │   │   await self.middleware_stack │                      
                             │   123 │                                   │                      
                             │   124 │   def on_event(self, event_type:  │                      
                             │   125 │   │   return self.router.on_event │                      
                             │                                           │                      
                             │ /Users/Nero_Okwa/opt/anaconda3/envs/kedro │                      
                             │ 310-conda/lib/python3.10/site-packages/st │                      
                             │ arlette/middleware/errors.py:184 in       │                      
                             │ __call__                                  │                      
                             │                                           │                      
                             │   181 │   │   │   # We always continue to │                      
                             │   182 │   │   │   # This allows servers t │                      
                             │   183 │   │   │   # to optionally raise t │                      
                             │ ❱ 184 │   │   │   raise exc               │                      
                             │   185 │                                   │                      
                             │   186 │   def format_line(                │                      
                             │   187 │   │   self, index: int, line: str │                      
                             │                                           │                      
                             │ /Users/Nero_Okwa/opt/anaconda3/envs/kedro │                      
                             │ 310-conda/lib/python3.10/site-packages/st │                      
                             │ arlette/middleware/errors.py:162 in       │                      
                             │ __call__                                  │                      
                             │                                           │                      
                             │   159 │   │   │   await send(message)     │                      
                             │   160 │   │                               │                      
                             │   161 │   │   try:                        │                      
                             │ ❱ 162 │   │   │   await self.app(scope, r │                      
                             │   163 │   │   except Exception as exc:    │                      
                             │   164 │   │   │   request = Request(scope │                      
                             │   165 │   │   │   if self.debug:          │                      
                             │                                           │                      
                             │ /Users/Nero_Okwa/opt/anaconda3/envs/kedro │                      
                             │ 310-conda/lib/python3.10/site-packages/st │                      
                             │ arlette/middleware/base.py:108 in         │                      
                             │ __call__                                  │                      
                             │                                           │                      
                             │   105 │   │                               │                      
                             │   106 │   │   async with anyio.create_tas │                      
                             │   107 │   │   │   request = Request(scope │                      
                             │ ❱ 108 │   │   │   response = await self.d │                      
                             │   109 │   │   │   await response(scope, r │                      
                             │   110 │   │   │   response_sent.set()     │                      
                             │   111                                     │                      
                             │                                           │                      
                             │ /Users/Nero_Okwa/opt/anaconda3/envs/kedro │                      
                             │ 310-conda/lib/python3.10/site-packages/ke │                      
                             │ dro_viz/api/apps.py:42 in                 │                      
                             │ set_secure_headers                        │                      
                             │                                           │                      
                             │    39 │                                   │                      
                             │    40 │   @app.middleware("http")         │                      
                             │    41 │   async def set_secure_headers(re │                      
                             │ ❱  42 │   │   response = await call_next( │                      
                             │    43 │   │   secure_headers.framework.fa │                      
                             │    44 │   │   return response             │                      
                             │    45                                     │                      
                             │                                           │                      
                             │ /Users/Nero_Okwa/opt/anaconda3/envs/kedro │                      
                             │ 310-conda/lib/python3.10/site-packages/st │                      
                             │ arlette/middleware/base.py:84 in          │                      
                             │ call_next                                 │                      
                             │                                           │                      
                             │    81 │   │   │   │   │   message = await │                      
                             │    82 │   │   │   except anyio.EndOfStrea │                      
                             │    83 │   │   │   │   if app_exc is not N │                      
                             │ ❱  84 │   │   │   │   │   raise app_exc   │                      
                             │    85 │   │   │   │   raise RuntimeError( │                      
                             │    86 │   │   │                           │                      
                             │    87 │   │   │   assert message["type"]  │                      
                             │                                           │                      
                             │ /Users/Nero_Okwa/opt/anaconda3/envs/kedro │                      
                             │ 310-conda/lib/python3.10/site-packages/st │                      
                             │ arlette/middleware/base.py:70 in coro     │                      
                             │                                           │                      
                             │    67 │   │   │   │                       │                      
                             │    68 │   │   │   │   async with send_str │                      
                             │    69 │   │   │   │   │   try:            │                      
                             │ ❱  70 │   │   │   │   │   │   await self. │                      
                             │    71 │   │   │   │   │   except Exceptio │                      
                             │    72 │   │   │   │   │   │   app_exc = e │                      
                             │    73                                     │                      
                             │                                           │                      
                             │ /Users/Nero_Okwa/opt/anaconda3/envs/kedro │                      
                             │ 310-conda/lib/python3.10/site-packages/st │                      
                             │ arlette/middleware/exceptions.py:79 in    │                      
                             │ __call__                                  │                      
                             │                                           │                      
                             │    76 │   │   │   │   handler = self._loo │                      
                             │    77 │   │   │                           │                      
                             │    78 │   │   │   if handler is None:     │                      
                             │ ❱  79 │   │   │   │   raise exc           │                      
                             │    80 │   │   │                           │                      
                             │    81 │   │   │   if response_started:    │                      
                             │    82 │   │   │   │   msg = "Caught handl │                      
                             │                                           │                      
                             │ /Users/Nero_Okwa/opt/anaconda3/envs/kedro │                      
                             │ 310-conda/lib/python3.10/site-packages/st │                      
                             │ arlette/middleware/exceptions.py:68 in    │                      
                             │ __call__                                  │                      
                             │                                           │                      
                             │    65 │   │   │   await send(message)     │                      
                             │    66 │   │                               │                      
                             │    67 │   │   try:                        │                      
                             │ ❱  68 │   │   │   await self.app(scope, r │                      
                             │    69 │   │   except Exception as exc:    │                      
                             │    70 │   │   │   handler = None          │                      
                             │    71                                     │                      
                             │                                           │                      
                             │ /Users/Nero_Okwa/opt/anaconda3/envs/kedro │                      
                             │ 310-conda/lib/python3.10/site-packages/fa │                      
                             │ stapi/middleware/asyncexitstack.py:21 in  │                      
                             │ __call__                                  │                      
                             │                                           │                      
                             │   18 │   │   │   │   │   await self.app(s │                      
                             │   19 │   │   │   │   except Exception as  │                      
                             │   20 │   │   │   │   │   dependency_excep │                      
                             │ ❱ 21 │   │   │   │   │   raise e          │                      
                             │   22 │   │   │   if dependency_exception: │                      
                             │   23 │   │   │   │   # This exception was │                      
                             │   24 │   │   │   │   # still bubble up so │                      
                             │                                           │                      
                             │ /Users/Nero_Okwa/opt/anaconda3/envs/kedro │                      
                             │ 310-conda/lib/python3.10/site-packages/fa │                      
                             │ stapi/middleware/asyncexitstack.py:18 in  │                      
                             │ __call__                                  │                      
                             │                                           │                      
                             │   15 │   │   │   async with AsyncExitStac │                      
                             │   16 │   │   │   │   scope[self.context_n │                      
                             │   17 │   │   │   │   try:                 │                      
                             │ ❱ 18 │   │   │   │   │   await self.app(s │                      
                             │   19 │   │   │   │   except Exception as  │                      
                             │   20 │   │   │   │   │   dependency_excep │                      
                             │   21 │   │   │   │   │   raise e          │                      
                             │                                           │                      
                             │ /Users/Nero_Okwa/opt/anaconda3/envs/kedro │                      
                             │ 310-conda/lib/python3.10/site-packages/st │                      
                             │ arlette/routing.py:718 in __call__        │                      
                             │                                           │                      
                             │   715 │   │   │   match, child_scope = ro │                      
                             │   716 │   │   │   if match == Match.FULL: │                      
                             │   717 │   │   │   │   scope.update(child_ │                      
                             │ ❱ 718 │   │   │   │   await route.handle( │                      
                             │   719 │   │   │   │   return              │                      
                             │   720 │   │   │   elif match == Match.PAR │                      
                             │   721 │   │   │   │   partial = route     │                      
                             │                                           │                      
                             │ /Users/Nero_Okwa/opt/anaconda3/envs/kedro │                      
                             │ 310-conda/lib/python3.10/site-packages/st │                      
                             │ arlette/routing.py:276 in handle          │                      
                             │                                           │                      
                             │   273 │   │   │   │   )                   │                      
                             │   274 │   │   │   await response(scope, r │                      
                             │   275 │   │   else:                       │                      
                             │ ❱ 276 │   │   │   await self.app(scope, r │                      
                             │   277 │                                   │                      
                             │   278 │   def __eq__(self, other: typing. │                      
                             │   279 │   │   return (                    │                      
                             │                                           │                      
                             │ /Users/Nero_Okwa/opt/anaconda3/envs/kedro │                      
                             │ 310-conda/lib/python3.10/site-packages/st │                      
                             │ arlette/routing.py:66 in app              │                      
                             │                                           │                      
                             │    63 │   async def app(scope: Scope, rec │                      
                             │    64 │   │   request = Request(scope, re │                      
                             │    65 │   │   if is_coroutine:            │                      
                             │ ❱  66 │   │   │   response = await func(r │                      
                             │    67 │   │   else:                       │                      
                             │    68 │   │   │   response = await run_in │                      
                             │    69 │   │   await response(scope, recei │                      
                             │                                           │                      
                             │ /Users/Nero_Okwa/opt/anaconda3/envs/kedro │                      
                             │ 310-conda/lib/python3.10/site-packages/fa │                      
                             │ stapi/routing.py:237 in app               │                      
                             │                                           │                      
                             │    234 │   │   if errors:                 │                      
                             │    235 │   │   │   raise RequestValidatio │                      
                             │    236 │   │   else:                      │                      
                             │ ❱  237 │   │   │   raw_response = await r │                      
                             │    238 │   │   │   │   dependant=dependan │                      
                             │    239 │   │   │   )                      │                      
                             │    240                                    │                      
                             │                                           │                      
                             │ /Users/Nero_Okwa/opt/anaconda3/envs/kedro │                      
                             │ 310-conda/lib/python3.10/site-packages/fa │                      
                             │ stapi/routing.py:163 in                   │                      
                             │ run_endpoint_function                     │                      
                             │                                           │                      
                             │    160 │   assert dependant.call is not N │                      
                             │    161 │                                  │                      
                             │    162 │   if is_coroutine:               │                      
                             │ ❱  163 │   │   return await dependant.cal │                      
                             │    164 │   else:                          │                      
                             │    165 │   │   return await run_in_thread │                      
                             │    166                                    │                      
                             │                                           │                      
                             │ /Users/Nero_Okwa/opt/anaconda3/envs/kedro │                      
                             │ 310-conda/lib/python3.10/site-packages/ke │                      
                             │ dro_viz/api/apps.py:81 in index           │                      
                             │                                           │                      
                             │    78 │   │   heap_app_id = kedro_telemet │                      
                             │    79 │   │   heap_user_identity = kedro_ │                      
                             │    80 │   │   should_add_telemetry = bool │                      
                             │ ❱  81 │   │   html_content = (_HTML_DIR / │                      
                             │    82 │   │   injected_head_content = []  │                      
                             │    83 │   │                               │                      
                             │    84 │   │   env = Environment(loader=Fi │                      
                             │                                           │                      
                             │ /Users/Nero_Okwa/opt/anaconda3/envs/kedro │                      
                             │ 310-conda/lib/python3.10/pathlib.py:1134  │                      
                             │ in read_text                              │                      
                             │                                           │                      
                             │   1131 │   │   Open the file in text mode │                      
                             │   1132 │   │   """                        │                      
                             │   1133 │   │   encoding = io.text_encodin │                      
                             │ ❱ 1134 │   │   with self.open(mode='r', e │                      
                             │   1135 │   │   │   return f.read()        │                      
                             │   1136 │                                  │                      
                             │   1137 │   def write_bytes(self, data):   │                      
                             │                                           │                      
                             │ /Users/Nero_Okwa/opt/anaconda3/envs/kedro │                      
                             │ 310-conda/lib/python3.10/pathlib.py:1119  │                      
                             │ in open                                   │                      
                             │                                           │                      
                             │   1116 │   │   """                        │                      
                             │   1117 │   │   if "b" not in mode:        │                      
                             │   1118 │   │   │   encoding = io.text_enc │                      
                             │ ❱ 1119 │   │   return self._accessor.open │                      
                             │   1120 │   │   │   │   │   │   │   │      │                      
                             │   1121 │                                  │                      
                             │   1122 │   def read_bytes(self):          │                      
                             ╰───────────────────────────────────────────╯                      
                             FileNotFoundError: [Errno 2] No such file or                       
                             directory:                                                         
                             '/Users/Nero_Okwa/opt/anaconda3/envs/kedro310                      
                             -conda/lib/python3.10/site-packages/kedro_viz                      
                             /html/index.html'  ```

### Installed packages

```shell
# Name                    Version                   Build  Channel
aiofiles                  22.1.0             pyhd8ed1ab_0    conda-forge
antlr-python-runtime      4.9.3              pyhd8ed1ab_1    conda-forge
anyconfig                 0.10.1             pyhd8ed1ab_0    conda-forge
anyio                     3.7.1              pyhd8ed1ab_0    conda-forge
appnope                   0.1.3              pyhd8ed1ab_0    conda-forge
argon2-cffi               23.1.0                   pypi_0    pypi
argon2-cffi-bindings      21.2.0                   pypi_0    pypi
arrow                     1.2.3              pyhd8ed1ab_0    conda-forge
asttokens                 2.2.1              pyhd8ed1ab_0    conda-forge
astunparse                1.6.3              pyhd8ed1ab_0    conda-forge
attrs                     23.1.0             pyh71513ae_1    conda-forge
babel                     2.12.1                   pypi_0    pypi
backcall                  0.2.0              pyh9f0ad1d_0    conda-forge
backports                 1.0                pyhd8ed1ab_3    conda-forge
backports.functools_lru_cache 1.6.5              pyhd8ed1ab_0    conda-forge
beautifulsoup4            4.12.2                   pypi_0    pypi
binaryornot               0.4.4                      py_1    conda-forge
black                     22.12.0                  pypi_0    pypi
bleach                    6.0.0                    pypi_0    pypi
brotli-python             1.0.9           py310h7a76584_9    conda-forge
bzip2                     1.0.8                h1de35cc_0  
ca-certificates           2023.7.22            h8857fd0_0    conda-forge
cachetools                5.3.1              pyhd8ed1ab_0    conda-forge
certifi                   2023.7.22          pyhd8ed1ab_0    conda-forge
cffi                      1.15.1                   pypi_0    pypi
chardet                   5.2.0           py310h2ec42d9_0    conda-forge
charset-normalizer        3.2.0              pyhd8ed1ab_0    conda-forge
click                     8.1.6           unix_pyh707e725_0    conda-forge
colorama                  0.4.6              pyhd8ed1ab_0    conda-forge
comm                      0.1.4                    pypi_0    pypi
contourpy                 1.1.0                    pypi_0    pypi
cookiecutter              2.3.0              pyh1a96a4e_0    conda-forge
coverage                  7.3.0                    pypi_0    pypi
cycler                    0.11.0                   pypi_0    pypi
debugpy                   1.6.7.post1              pypi_0    pypi
decorator                 5.1.1              pyhd8ed1ab_0    conda-forge
defusedxml                0.7.1                    pypi_0    pypi
dynaconf                  3.2.0              pyhd8ed1ab_0    conda-forge
entrypoints               0.4                      pypi_0    pypi
et-xmlfile                1.1.0                    pypi_0    pypi
exceptiongroup            1.1.3              pyhd8ed1ab_0    conda-forge
executing                 1.2.0              pyhd8ed1ab_0    conda-forge
fastapi                   0.95.2             pyhd8ed1ab_0    conda-forge
fastjsonschema            2.18.0                   pypi_0    pypi
flake8                    4.0.1                    pypi_0    pypi
fonttools                 4.42.0                   pypi_0    pypi
fsspec                    2023.6.0           pyh1a96a4e_0    conda-forge
gitdb                     4.0.10             pyhd8ed1ab_0    conda-forge
gitpython                 3.1.32             pyhd8ed1ab_0    conda-forge
graphql-core              3.2.3              pyhd8ed1ab_0    conda-forge
greenlet                  2.0.2           py310h9e9d8ca_1    conda-forge
h11                       0.14.0             pyhd8ed1ab_0    conda-forge
httptools                 0.6.0                    pypi_0    pypi
idna                      3.4                pyhd8ed1ab_0    conda-forge
importlib-metadata        6.8.0              pyha770c72_0    conda-forge
importlib_metadata        6.8.0                hd8ed1ab_0    conda-forge
importlib_resources       6.0.1              pyhd8ed1ab_0    conda-forge
iniconfig                 2.0.0                    pypi_0    pypi
ipykernel                 6.25.1                   pypi_0    pypi
ipython                   8.14.0             pyhd1c38e8_0    conda-forge
ipython-genutils          0.2.0                    pypi_0    pypi
ipywidgets                8.1.0                    pypi_0    pypi
isort                     5.12.0                   pypi_0    pypi
jedi                      0.19.0             pyhd8ed1ab_0    conda-forge
jinja2                    3.1.2              pyhd8ed1ab_1    conda-forge
jmespath                  0.10.0             pyh9f0ad1d_0    conda-forge
joblib                    1.3.2                    pypi_0    pypi
json5                     0.9.14                   pypi_0    pypi
jsonschema                4.19.0                   pypi_0    pypi
jsonschema-specifications 2023.7.1                 pypi_0    pypi
jupyter                   1.0.0                    pypi_0    pypi
jupyter-client            7.4.9                    pypi_0    pypi
jupyter-console           6.6.3                    pypi_0    pypi
jupyter-core              5.3.1                    pypi_0    pypi
jupyter-server            1.24.0                   pypi_0    pypi
jupyterlab                3.5.3                    pypi_0    pypi
jupyterlab-pygments       0.2.2                    pypi_0    pypi
jupyterlab-server         2.15.2                   pypi_0    pypi
jupyterlab-widgets        3.0.8                    pypi_0    pypi
kedro                     0.18.12            pyhd8ed1ab_0    conda-forge
kedro-datasets            1.5.2                    pypi_0    pypi
kedro-telemetry           0.2.5                    pypi_0    pypi
kedro-viz                 6.3.4              pyhd8ed1ab_0    conda-forge
kiwisolver                1.4.4                    pypi_0    pypi
lazy-loader               0.3                      pypi_0    pypi
libblas                   3.9.0           17_osx64_openblas    conda-forge
libcblas                  3.9.0           17_osx64_openblas    conda-forge
libcxx                    16.0.6               hd57cbcb_0    conda-forge
libffi                    3.4.4                hecd8cb5_0  
libgfortran               5.0.0           12_3_0_h97931a8_1    conda-forge
libgfortran5              12.3.0               hbd3c1fe_1    conda-forge
liblapack                 3.9.0           17_osx64_openblas    conda-forge
libopenblas               0.3.23          openmp_h429af6e_0    conda-forge
llvm-openmp               16.0.6               hff08bdf_0    conda-forge
markdown-it-py            3.0.0              pyhd8ed1ab_0    conda-forge
markupsafe                2.1.3           py310h6729b98_0    conda-forge
matplotlib                3.7.2                    pypi_0    pypi
matplotlib-inline         0.1.6              pyhd8ed1ab_0    conda-forge
mccabe                    0.6.1                    pypi_0    pypi
mdurl                     0.1.0              pyhd8ed1ab_0    conda-forge
mistune                   3.0.1                    pypi_0    pypi
more-itertools            9.0.0              pyhd8ed1ab_0    conda-forge
mypy-extensions           1.0.0                    pypi_0    pypi
nbclassic                 1.0.0                    pypi_0    pypi
nbclient                  0.8.0                    pypi_0    pypi
nbconvert                 7.7.4                    pypi_0    pypi
nbformat                  5.9.2                    pypi_0    pypi
nbstripout                0.6.1                    pypi_0    pypi
ncurses                   6.4                  hcec6c5f_0  
nest-asyncio              1.5.7                    pypi_0    pypi
networkx                  3.1                pyhd8ed1ab_0    conda-forge
notebook                  6.5.5                    pypi_0    pypi
notebook-shim             0.2.3                    pypi_0    pypi
numpy                     1.25.2          py310h7451ae0_0    conda-forge
omegaconf                 2.3.0              pyhd8ed1ab_0    conda-forge
openpyxl                  3.1.2                    pypi_0    pypi
openssl                   3.1.2                h8a1eda9_0    conda-forge
orjson                    3.9.5           py310hdb862b2_0    conda-forge
packaging                 23.1               pyhd8ed1ab_0    conda-forge
pandas                    2.0.3           py310h5e4fcda_1    conda-forge
pandocfilters             1.5.0                    pypi_0    pypi
parse                     1.19.1             pyhd8ed1ab_0    conda-forge
parso                     0.8.3              pyhd8ed1ab_0    conda-forge
pathspec                  0.11.2                   pypi_0    pypi
pexpect                   4.8.0              pyh1a96a4e_2    conda-forge
pickleshare               0.7.5                   py_1003    conda-forge
pillow                    10.0.0                   pypi_0    pypi
pip                       23.2.1          py310hecd8cb5_0  
pip-tools                 7.3.0              pyhd8ed1ab_0    conda-forge
platformdirs              3.10.0                   pypi_0    pypi
plotly                    5.16.1             pyhd8ed1ab_0    conda-forge
pluggy                    1.0.0              pyhd8ed1ab_5    conda-forge
prometheus-client         0.17.1                   pypi_0    pypi
prompt-toolkit            3.0.39             pyha770c72_0    conda-forge
prompt_toolkit            3.0.39               hd8ed1ab_0    conda-forge
psutil                    5.9.5                    pypi_0    pypi
ptyprocess                0.7.0              pyhd3deb0d_0    conda-forge
pure_eval                 0.2.2              pyhd8ed1ab_0    conda-forge
pyarrow                   12.0.1                   pypi_0    pypi
pycodestyle               2.8.0                    pypi_0    pypi
pycparser                 2.21                     pypi_0    pypi
pydantic                  1.10.12         py310h6729b98_1    conda-forge
pyflakes                  2.4.0                    pypi_0    pypi
pygments                  2.16.1             pyhd8ed1ab_0    conda-forge
pyparsing                 3.0.9                    pypi_0    pypi
pyproject_hooks           1.0.0              pyhd8ed1ab_0    conda-forge
pysocks                   1.7.1              pyha2e5f31_6    conda-forge
pytest                    7.4.0                    pypi_0    pypi
pytest-cov                3.0.0                    pypi_0    pypi
pytest-mock               1.13.0                   pypi_0    pypi
python                    3.10.12              h5ee71fb_0  
python-build              0.10.0             pyhd8ed1ab_1    conda-forge
python-dateutil           2.8.2              pyhd8ed1ab_0    conda-forge
python-dotenv             1.0.0                    pypi_0    pypi
python-slugify            8.0.1              pyhd8ed1ab_0    conda-forge
python-tzdata             2023.3             pyhd8ed1ab_0    conda-forge
python_abi                3.10                    2_cp310    conda-forge
pytoolconfig              1.2.5              pyhd8ed1ab_0    conda-forge
pytz                      2023.3             pyhd8ed1ab_0    conda-forge
pyyaml                    6.0             py310h90acd4f_5    conda-forge
pyzmq                     24.0.1                   pypi_0    pypi
qtconsole                 5.4.3                    pypi_0    pypi
qtpy                      2.3.1                    pypi_0    pypi
readline                  8.2                  hca72f7f_0  
referencing               0.30.2                   pypi_0    pypi
requests                  2.31.0             pyhd8ed1ab_0    conda-forge
rich                      13.5.1             pyhd8ed1ab_0    conda-forge
rope                      1.9.0              pyhd8ed1ab_0    conda-forge
rpds-py                   0.9.2                    pypi_0    pypi
scikit-learn              1.3.0                    pypi_0    pypi
scipy                     1.11.1                   pypi_0    pypi
secure                    0.3.0              pyhd8ed1ab_0    conda-forge
semver                    3.0.1              pyhd8ed1ab_0    conda-forge
send2trash                1.8.2                    pypi_0    pypi
setuptools                68.0.0          py310hecd8cb5_0  
six                       1.16.0             pyh6c4a22f_0    conda-forge
smmap                     3.0.5              pyh44b312d_0    conda-forge
sniffio                   1.3.0              pyhd8ed1ab_0    conda-forge
soupsieve                 2.4.1                    pypi_0    pypi
sqlalchemy                2.0.20          py310h6729b98_0    conda-forge
sqlite                    3.41.2               h6c40b1e_0  
stack_data                0.6.2              pyhd8ed1ab_0    conda-forge
starlette                 0.27.0             pyhd8ed1ab_0    conda-forge
strawberry-graphql        0.204.0            pyhd8ed1ab_0    conda-forge
tenacity                  8.2.3              pyhd8ed1ab_0    conda-forge
terminado                 0.17.1                   pypi_0    pypi
text-unidecode            1.3                        py_0    conda-forge
threadpoolctl             3.2.0                    pypi_0    pypi
tinycss2                  1.2.1                    pypi_0    pypi
tk                        8.6.12               h5d9f67b_0  
toml                      0.10.2             pyhd8ed1ab_0    conda-forge
tomli                     2.0.1              pyhd8ed1ab_0    conda-forge
toposort                  1.10               pyhd8ed1ab_0    conda-forge
tornado                   6.3.3                    pypi_0    pypi
traitlets                 5.9.0              pyhd8ed1ab_0    conda-forge
typing-extensions         4.7.1                hd8ed1ab_0    conda-forge
typing_extensions         4.7.1              pyha770c72_0    conda-forge
tzdata                    2023c                h04d1e81_0  
unidecode                 1.3.6              pyhd8ed1ab_0    conda-forge
urllib3                   2.0.4              pyhd8ed1ab_0    conda-forge
uvicorn                   0.22.0          py310h2ec42d9_0    conda-forge
uvloop                    0.17.0                   pypi_0    pypi
watchfiles                0.19.0                   pypi_0    pypi
watchgod                  0.8.2              pyhd8ed1ab_0    conda-forge
wcwidth                   0.2.6              pyhd8ed1ab_0    conda-forge
webencodings              0.5.1                    pypi_0    pypi
websocket-client          1.6.1                    pypi_0    pypi
websockets                11.0.3                   pypi_0    pypi
wheel                     0.38.4          py310hecd8cb5_0  
widgetsnbextension        4.0.8                    pypi_0    pypi
xz                        5.4.2                h6c40b1e_0  
yaml                      0.2.5                h0d85af4_2    conda-forge
zipp                      3.16.2             pyhd8ed1ab_0    conda-forge
zlib                      1.2.13               h4dc903c_0

Environment info

active environment : kedro310-conda
    active env location : /Users/Nero_Okwa/opt/anaconda3/envs/kedro310-conda
            shell level : 2
       user config file : /Users/Nero_Okwa/.condarc
 populated config files : /Users/Nero_Okwa/.condarc
          conda version : 4.11.0
    conda-build version : 3.21.5
         python version : 3.9.7.final.0
       virtual packages : __osx=10.16=0
                          __unix=0=0
                          __archspec=1=x86_64
       base environment : /Users/Nero_Okwa/opt/anaconda3  (writable)
      conda av data dir : /Users/Nero_Okwa/opt/anaconda3/etc/conda
  conda av metadata url : None
           channel URLs : https://repo.anaconda.cloud/repo/main/osx-64
                          https://repo.anaconda.cloud/repo/main/noarch
                          https://repo.anaconda.cloud/repo/r/osx-64
                          https://repo.anaconda.cloud/repo/r/noarch
                          https://repo.anaconda.cloud/repo/msys2/osx-64
                          https://repo.anaconda.cloud/repo/msys2/noarch
          package cache : /Users/Nero_Okwa/opt/anaconda3/pkgs
                          /Users/Nero_Okwa/.conda/pkgs
       envs directories : /Users/Nero_Okwa/opt/anaconda3/envs
                          /Users/Nero_Okwa/.conda/envs
               platform : osx-64
             user-agent : conda/4.11.0 requests/2.26.0 CPython/3.9.7 Darwin/22.6.0 OSX/10.16
                UID:GID : 502:20
             netrc file : None
           offline mode : False
astrojuanlu commented 1 year ago

For the record, @rxm7706 and I have been struggling a bit to get kedro-viz properly built on conda-forge, you can see some of our earlier efforts in https://github.com/conda-forge/staged-recipes/pull/22142 and some more background in https://github.com/kedro-org/kedro-viz/issues/1267

rxm7706 commented 1 year ago

Unfortunately nothing caught this and this saga continues -

I think whats needed might be available in the release targz.. and just need to be copied over form /public to /package https://github.com/kedro-org/kedro-viz/blob/50ebfe616d8295d0a5e9aeff5da5dc56ebe74922/Makefile#L3C1-L13C36

Trying to solve this at the conda packing level may not even be possible at this point, and we need a new release / distribution and focus on the core packaging issues @astrojuanlu raised.

Will try and take a look at options.

millsks commented 1 year ago

I was able to reproduce the issue. I believe the reason the recipe build did not fail was because the kedro_viz module is able to import successfully from inside the python interpreter. Once you try to execute kedro viz from the command line, then that is where it is throwing the issue.

(kedro310-conda) millsks@ATREIDES:~/UserLocal/projects/spaceflights$ python
Python 3.10.12 | packaged by conda-forge | (main, Jun 23 2023, 22:40:32) [GCC 12.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import kedro_viz
>>> kedro_viz.__version__
'6.3.4'

From what we can tell the build tarball on the repo where the recipe is pointed at doesn't have the kedro_viz/html files. This is most likely because the release tarball is a snapshot of pre-build and npm run build has not been executed yet.

More to come.

rxm7706 commented 1 year ago

image

In the conda recipe - we need to replace uvicorn with uvicorn-standard ; to match uvicorn[standard]~=0.22.0 at https://github.com/kedro-org/kedro-viz/blob/main/package/requirements.txt#L7C1-L7C26

astrojuanlu commented 1 year ago

This was fixed in #7 🎉