由于 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 笔记本?

如何在AWS运行Jupyter Notebook

如何在AWS运行Jupyter Notebook

jupyter怎么打不开?

如何将我的 Django 项目中的 jupyter-lab 连接到 Django 的模型?

python 启动django jupyter笔记本