指定 ipython 配置文件 qtconsole

Posted

技术标签:

【中文标题】指定 ipython 配置文件 qtconsole【英文标题】:Specify ipython profile qtconsole 【发布时间】:2018-03-04 05:33:31 【问题描述】:

关于如何从 qtconsole 指定特定 ipython 配置的任何猜测?

没有 qtconsole:

ipython --profile=my_profile_name

其中 my_profile_name 是全局 ipython 目录下的配置文件名称,用于 ipython 内核选项。这使您可以指定特定于 ipython 的内容,例如要在加载时导入的模块。

使用 qtconsole:

jupyter console --config=/./jupyter_qtconsole_config.py

您可以在其中指定特定的配置文件来设置一般的非 ipython 特定的 qtconsole 设置,例如字体大小。

如何从 qtconsole 指定设置 ipython 配置文件(理想情况下将其指向一个文件,但可能仅限于指定全局配置文件名称)?即添加 ---profile 标签到 jupyter qtconsole?我是这个链接:https://groups.google.com/forum/#!topic/jupyter/kzEws9ZeCFEMatthias 提到了指定内核,但这似乎有点矫枉过正。

您可以在名为“ipython_kernel_config.py”的文件中指定配置文件;也许解决方案在于使用 --config=jupyter_qtconsole_config.py 启动 qtconsole,并在此文件中指向指向配置文件名称的自定义 ipython_kernel_config.py;不确定如何指向内核配置文件,并且在 jupyter 配置文档中没有明显的方法。

【问题讨论】:

【参考方案1】:

您需要创建一个自定义的kernelspec 并为这个特定的内核启动 qtconsole。

通常“内核”被视为一种语言;这是对内核的极端限制性观点。在您的情况下,您想要做的是拥有多个 IPython 内核,每个内核都使用不同的配置文件启动 IPython。 Here 是对内核规范的更正式定义;但它大致描述了如何启动一个进程。

通过使用jupyter kernelspec list,我可以看到/usr/local/share/jupyter/kernels/python3 中有一个Python 内核规范;让我们看看它,尤其是kernel.json 文件:


 "argv": [
  "$HOME/anaconda/bin/python",
  "-m",
  "ipykernel_launcher",
  "-f",
  "connection_file"
 ],
 "display_name": "Python 3",
 "language": "python"

现在您只需复制所有这些,并将"--profile=my_profile_name" 添加到"argv" 列表中。不要忘记给文件夹起一个不同的名称,并将"display_name": "Python 3" 更改为"display_name": "Python 3 (my_profile)";一旦可用。只需使用此内核启动 qtconsole、笔记本或其他任何东西,您就应该获得新的配置文件。

您当然可以使用诸如a2km 之类的实用程序从命令行以编程方式执行此操作。

【讨论】:

谢谢!然后我只需要在 jupyter/kernels 下创建一个适当命名的新文件夹,将您描述的文件放入其中,然后使用“jupyter qtconsole --kernel myfoldername”启动 另一种解决方案:从包含 ipython_config.py 文件的位置运行 qtconsole;这将覆盖其他配置文件。

以上是关于指定 ipython 配置文件 qtconsole的主要内容,如果未能解决你的问题,请参考以下文章

运行外部文件时在 ipython qtconsole 中进行 LaTeX 打印

使用 PyQt5 设置 IPython Qtconsole

在 jupyter qtconsole 中自动运行 %matplotlib inline

如何运行连接到 ipython3 实例的 qtconsole?

嵌入 ipython qtconsole 并传递对象

加载 ipython qtconsole 时出错