首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Jupyter上运行justpy web应用程序会返回RuntimeError

在Jupyter上运行justpy web应用程序会返回RuntimeError
EN

Stack Overflow用户
提问于 2021-04-02 22:23:36
回答 2查看 323关注 0票数 1

我正试着在Jupyter上运行justpy web应用程序,比如下面这个:

代码语言:javascript
复制
import justpy as jp

def hello_world():
    wp = jp.WebPage()
    d = jp.Div(text='Hello world!')
    wp.add(d)
    return wp

jp.justpy(hello_world)

但无论我是在Jupyter Notebook上运行还是在Jupyter Lab上运行,这都会产生错误:

代码语言:javascript
复制
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-2-a5b426517caf> in <module>
      7     return wp
      8 
----> 9 jp.justpy(hello_world)

/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/justpy/justpy.py in justpy(func, start_server, websockets, host, port, startup, **kwargs)
    381                         ssl_keyfile=SSL_KEYFILE, ssl_certfile=SSL_CERTFILE, ssl_version=SSL_VERSION)
    382         else:
--> 383             uvicorn.run(app, host=host, port=port, log_level=UVICORN_LOGGING_LEVEL)
    384 
    385     return func_to_run

/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/uvicorn/main.py in run(app, **kwargs)
    389         supervisor.run()
    390     else:
--> 391         server.run()
    392 
    393 

/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/uvicorn/main.py in run(self, sockets)
    417         self.config.setup_event_loop()
    418         loop = asyncio.get_event_loop()
--> 419         loop.run_until_complete(self.serve(sockets=sockets))
    420 
    421     async def serve(self, sockets=None):

/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/asyncio/base_events.py in run_until_complete(self, future)
    590         """
    591         self._check_closed()
--> 592         self._check_running()
    593 
    594         new_task = not futures.isfuture(future)

/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/asyncio/base_events.py in _check_running(self)
    550     def _check_running(self):
    551         if self.is_running():
--> 552             raise RuntimeError('This event loop is already running')
    553         if events._get_running_loop() is not None:
    554             raise RuntimeError(

RuntimeError: This event loop is already running

有谁有在Jupyter上运行justpy应用的解决方案吗?

EN

回答 2

Stack Overflow用户

发布于 2021-04-07 00:13:28

将此内容添加到笔记本的开头

代码语言:javascript
复制
import nest_asyncio
nest_asyncio.apply()

这是因为ipython内核本身运行在一个事件循环上,

引用nest_asyncio文档中的内容:

asyncio设计的

不允许嵌套其事件循环。这就提出了一个实际问题:在事件循环已经运行的环境中,不可能运行任务并等待结果。尝试这样做将给出错误"RuntimeError:此事件循环已在运行“。

票数 1
EN

Stack Overflow用户

发布于 2021-04-07 01:02:02

安装nest-asyncio

代码语言:javascript
复制
pip install nest-asyncio

之后添加以下几行

代码语言:javascript
复制
import nest_asyncio
nest_asyncio.apply()
__import__('IPython').embed()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66920753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档