jupyterlite-sphinx
jupyterlite-sphinx copied to clipboard
ipyleaflet example linked in the Readme does not work
Hi, Thank you for this amazing project ! I'm not sure if this is the best place to report the bug in ipyleaflet documentation, forgive me if I'm mistaken. If this cannot be fixed on your side, I thought it would be nice to edit the Readme to link to a working example, hence this report here.
Description
When following the ipyleaflet link in the Readme, to try the jupyterlite widget, I get
-------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Cell In[1], line 2
1 import piplite
----> 2 await piplite.install('ipyleaflet')
File /lib/python3.9/asyncio/futures.py:284, in Future.__await__(self)
282 if not self.done():
283 self._asyncio_future_blocking = True
--> 284 yield self # This tells Task to wait for completion.
285 if not self.done():
286 raise RuntimeError("await wasn't used with future")
File /lib/python3.9/asyncio/tasks.py:328, in Task.__wakeup(self, future)
326 def __wakeup(self, future):
327 try:
--> 328 future.result()
329 except BaseException as exc:
330 # This may also be a cancellation.
331 self.__step(exc)
File /lib/python3.9/asyncio/futures.py:201, in Future.result(self)
199 self.__log_traceback = False
200 if self._exception is not None:
--> 201 raise self._exception
202 return self._result
File /lib/python3.9/asyncio/tasks.py:258, in Task.__step(***failed resolving arguments***)
256 result = coro.send(None)
257 else:
--> 258 result = coro.throw(exc)
259 except StopIteration as exc:
260 if self._must_cancel:
261 # Task is cancelled right before coro stops.
File /lib/python3.9/site-packages/piplite/piplite.py:80, in _PackageManager.install(self, requirements, ctx, keep_going)
76 async def install(
77 self, requirements: Union[str, List[str]], ctx=None, keep_going: bool = False
78 ):
79 with patch("micropip._micropip._get_pypi_json", _get_pypi_json):
---> 80 return await _MP_PACKAGE_MANAGER.install(requirements, ctx, keep_going)
File /lib/python3.9/site-packages/micropip/_micropip.py:185, in _PackageManager.install(self, requirements, ctx, keep_going)
182 await install_func
183 done_callback()
--> 185 transaction = await self.gather_requirements(requirements, ctx, keep_going)
187 if transaction["failed"]:
188 failed_requirements = ", ".join(
189 [f"'{req}'" for req in transaction["failed"]]
190 )
File /lib/python3.9/site-packages/micropip/_micropip.py:175, in _PackageManager.gather_requirements(self, requirements, ctx, keep_going)
170 for requirement in requirements:
171 requirement_promises.append(
172 self.add_requirement(requirement, ctx, transaction)
173 )
--> 175 await gather(*requirement_promises)
176 return transaction
File /lib/python3.9/asyncio/futures.py:284, in Future.__await__(self)
282 if not self.done():
283 self._asyncio_future_blocking = True
--> 284 yield self # This tells Task to wait for completion.
285 if not self.done():
286 raise RuntimeError("await wasn't used with future")
File /lib/python3.9/asyncio/tasks.py:328, in Task.__wakeup(self, future)
326 def __wakeup(self, future):
327 try:
--> 328 future.result()
329 except BaseException as exc:
330 # This may also be a cancellation.
331 self.__step(exc)
File /lib/python3.9/asyncio/futures.py:201, in Future.result(self)
199 self.__log_traceback = False
200 if self._exception is not None:
--> 201 raise self._exception
202 return self._result
File /lib/python3.9/asyncio/tasks.py:256, in Task.__step(***failed resolving arguments***)
252 try:
253 if exc is None:
254 # We use the `send` method directly, because coroutines
255 # don't have `__iter__` and `__next__` methods.
--> 256 result = coro.send(None)
257 else:
258 result = coro.throw(exc)
File /lib/python3.9/site-packages/micropip/_micropip.py:295, in _PackageManager.add_requirement(self, requirement, ctx, transaction)
290 raise ValueError(
291 f"Couldn't find a pure Python 3 wheel for '{req}'. "
292 "You can use `micropip.install(..., keep_going=True)` to get a list of all packages with missing wheels."
293 )
294 else:
--> 295 await self.add_wheel(req.name, wheel, ver, req.extras, ctx, transaction)
File /lib/python3.9/site-packages/micropip/_micropip.py:305, in _PackageManager.add_wheel(self, name, wheel, version, extras, ctx, transaction)
303 dist = pkg_resources_distribution_for_wheel(zip_file, name, "???")
304 for recurs_req in dist.requires(extras):
--> 305 await self.add_requirement(recurs_req, ctx, transaction)
307 transaction["wheels"].append((name, wheel, version))
File /lib/python3.9/site-packages/micropip/_micropip.py:295, in _PackageManager.add_requirement(self, requirement, ctx, transaction)
290 raise ValueError(
291 f"Couldn't find a pure Python 3 wheel for '{req}'. "
292 "You can use `micropip.install(..., keep_going=True)` to get a list of all packages with missing wheels."
293 )
294 else:
--> 295 await self.add_wheel(req.name, wheel, ver, req.extras, ctx, transaction)
File /lib/python3.9/site-packages/micropip/_micropip.py:305, in _PackageManager.add_wheel(self, name, wheel, version, extras, ctx, transaction)
303 dist = pkg_resources_distribution_for_wheel(zip_file, name, "???")
304 for recurs_req in dist.requires(extras):
--> 305 await self.add_requirement(recurs_req, ctx, transaction)
307 transaction["wheels"].append((name, wheel, version))
File /lib/python3.9/site-packages/micropip/_micropip.py:290, in _PackageManager.add_requirement(self, requirement, ctx, transaction)
288 transaction["failed"].append(req)
289 else:
--> 290 raise ValueError(
291 f"Couldn't find a pure Python 3 wheel for '{req}'. "
292 "You can use `micropip.install(..., keep_going=True)` to get a list of all packages with missing wheels."
293 )
294 else:
295 await self.add_wheel(req.name, wheel, ver, req.extras, ctx, transaction)
ValueError: Couldn't find a pure Python 3 wheel for 'widgetsnbextension~=4.0'. You can use `micropip.install(..., keep_going=True)` to get a list of all packages with missing wheels.
Reproduce
- On the Readme of jupyterlite-sphinx
- Click on ipyleaflet
- Click on "Run"→"Run All Cells"
- See error above
Expected behavior
I expected the embedded jupyterlite notebook to be able to import the module and run.
Context
- JupyterLite version: Version: 0.1.0-beta.4
- Operating System and version: Debian 6.1.4-1 (2023-01-07) x86_64 GNU/Linux
- Browser and version: firefox 102.7.0esr (64-bit)