由于 Django 运行服务器,Jupyter 笔记本挂起
Posted
技术标签:
【中文标题】由于 Django 运行服务器,Jupyter 笔记本挂起【英文标题】:Jupyter notebook hanging due to Django runserver 【发布时间】:2020-11-06 09:59:51 【问题描述】:前段时间我做了一个简单的 Django 应用程序。最近,我开始为 Python 使用 Jupyter 笔记本,我想知道我是否可以从这样的笔记本运行我的应用程序。为了测试这一点,我打开了一个新笔记本并导航到应用程序的***目录:
%cd d:\adressen
为了查看应用程序是否可以从笔记本运行,我首先尝试了:
!py manage.py makemigrations
它应该返回:
No changes detected
到目前为止一切顺利。现在启动服务器:
!py manage.py runserver
从某种意义上说,什么也没发生。没有输出,单元格标签仍显示为In[*]
。尽管如此,服务器仍在运行,因为如果我在我的网络浏览器中打开页面 http:\\localhost:8000
,我的应用程序就会启动并且所有功能都可以正常工作。
我不明白为什么在笔记本中makemigrations
处理正确,而runserver
使其挂起。 Jupyter 控制台没有显示任何可能出错的地方。
在查看了有关 Jupyter 和 Django 的其他一些问题和答案后,我安装了 django-extensions
并将其包含在已安装的应用程序中。那没有帮助。当我使用 python manage.py shell_plus --notebook
启动 Jupyter 时,打开一个新笔记本并使用相同的命令,同样的情况会发生。
非常感谢任何有关为什么会发生这种情况以及如何克服它的建议。
【问题讨论】:
【参考方案1】:我想我终于找到了这里发生的事情以及如何克服它。
使用 Jupyter shell 命令!py manage.py runserver
Django 确实启动了服务器,但也想写入控制台。没有控制台,所以 Jupyter 似乎挂了。
当我们使用 !start py manage.py runserver
时,不仅 Django 启动服务器,而且打开一个控制台,我们在打开服务器时看到标准 Django 输出。
通过这种方式,我可以将 Jupyter notebook 用作 Django 项目的 IDE。
【讨论】:
以上是关于由于 Django 运行服务器,Jupyter 笔记本挂起的主要内容,如果未能解决你的问题,请参考以下文章
如何允许用户在我的服务器上运行存储在我的数据库中的 jupyter 笔记本?