【问题标题】:IPython Kernel Non-Responsive: Running a Django development server from an IPython NotebookIPython Kernel Non-Responsive:从 IPython Notebook 运行 Django 开发服务器
【发布时间】:2013-06-06 14:43:26
【问题描述】:

我正在尝试在 IPython Notebook 中运行这行代码:

!manage.py runserver

它在命令行上执行manage.py runserver,然后在http://127.0.0.1:8000/ 启动Django 开发服务器,并允许我调试/开发我的Django 项目。

问题是,当我在笔记本中执行此操作时,笔记本挂起,因为 Django 服务器不断重新加载/没有将控制权传回。

有没有办法将Control+C 之类的中断传递到命令行或获得对 IPython 内核的控制权,以便我可以继续在笔记本中进行我的项目?

【问题讨论】:

  • 使用 !manage.py runserver & 尝试“run-in-the-background”的通用 shell 语法?祝你好运。
  • 谢谢!好主意,但我得到了错误:OSError: Background processes not supported.
  • 您是否尝试过将带有 & 的命令放在脚本中并从笔记本单元格中调用脚本?
  • @Mono 你看到上面@shelter 的评论了吗?我跑了 !manage.py runserver & 并从 IPython 得到了这个错误:OSError: Background processes not supported.
  • 是的,我看到了这个,但我的建议是将整个命令(也带有 &)放入一个 shell 脚本中,并在不带 & 的情况下调用该脚本。这 & 导致 ipython 看到它是一个后台进程。

标签: django command-line ipython ipython-notebook


【解决方案1】:

我在 IPython 开发者的 github 上提出了一个问题。 Minrk 找到了这个解决方案:

import subprocess
server = subprocess.Popen(["python", "manage.py", "runserver"])

它允许我查看开发服务器并继续在 IPython Notebook 中开发它。甜!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-16
    • 1970-01-01
    • 2017-03-19
    • 1970-01-01
    相关资源
    最近更新 更多