django-extensions shell_plus --kernel 指定连接文件

django-extensions shell_plus --kernel specify connection file

我想使用 jupyter-hub 启动并与 django ipython 内核交互。

Django 扩展允许我通过 manage.py shell_plus --kernel 命令行创建一个 ipython 内核,但是这不允许我指定连接文件,这是 jupyter-hub 内核规范所必需的.

例如,我想像这样指定我自己的自定义内核类型:

{
"display_name": "Django",
"language": "python",
"codemirror_mode": {
    "version": 3,
    "name": "ipython"
},
"argv": [
    "/home/me/.virtualenvs/django/bin/python",
    "/home/me/django/manage.py",
    "shell_plus",
    "--kernel",
    "-f",
    "{connection_file}"
    ]
}

但是 --kernel 选项似乎不允许我传递额外的 kwags。

我快速查看了 django-extensionsipython 的源代码,但找不到简单的修复方法。任何人都有任何想法。

我认为能够从 Jupyter-hub 连接到 django shell 会非常有用,而且功能似乎非常接近。

谢谢。

对于任何感兴趣的人,我通过向 django-extension 中的 shell_plus 命令添加一个 --connection_file 选项来解决这个问题,然后将文件名转发给内核。 然后我可以为 Jupyter-hub 定义我的 django 内核,如下所示。

{
"display_name": "Django",
"language": "python",
"codemirror_mode": {
    "version": 3,
    "name": "ipython"
},
"argv": [
    "/home/me/.virtualenvs/django/bin/python",
    "/home/me/django/manage.py",
    "shell_plus",
    "--kernel",
    "--connection_file",
    "{connection_file}"
    ]
}

查看我在 github 上的分支以了解更改。