如何在 conda 或 virtualenv 中启动 ipython shell(不是笔记本)

How to start an ipython shell(not notebook) within a conda or virtualenv

是否可以在 conda 或 virtualenv 中启动 ipython shell(在终端中)? ipython shell 应该属于各自的环境。

我知道一种在环境中启动 jupyter 笔记本的方法,方法是为虚拟环境创建内核规范,然后在 jupyter 笔记本中选择环境内核。

这里是 link : http://help.pythonanywhere.com/pages/IPythonNotebookVirtualenvs

但这只是为当前环境设置了 jupyter notebook。 ipython shell

是否有相同的方法

I know a way to start jupyter notebook within the env, by creating a kernelspecs for the virtual env and then choosing the env kernel within the jupyter notebook.

你只需要做同样的事情,但使用 console 而不是 notebook

例如:

ipython console --kernel python2

Grisha Levit 给出的答案几乎解决了问题。所以,我正在写答案的完整细节,如何在特定环境中设置 ipython 控制台。

1.) 激活虚拟环境:

source activate <environment-name>

2.) 从虚拟环境中:

jupyter kernelspec install-self --user

3.) 这将为您的虚拟环境创建一个 kernelspec 并告诉您它在哪里:

  • 在 home/username/.local/share/jupyter/kernels/pythonX
  • 中安装了内核规范 pythonX

其中 pythonX 是 virtualenv 中 python 的版本。

4.) 将新的内核规范复制到有用的地方。为你的新内核选择一个 kernel_name,它不是 python2 或 python3 或你以前使用过的内核,然后:

mkdir -p ~/.ipython/kernels
mv ~/.local/share/jupyter/kernels/pythonX ~/.ipython/kernels/<kernel_name>

5.) 如果您想更改 IPython 显示的内核名称,您需要编辑 ~/.ipython/kernels//kernel.json 并更改 JSON键叫display_name取一个你喜欢的名字。

6.) 运行 jupter/ipython virtualenv 中的控制台。

jupyter console --kernel <kernel-name>

7.) 这将为当前的 virtualenv 启动 jupyter console/shell,您还可以在 IPython notebook 菜单中看到内核:内核 -> 更改内核并能够切换到它(您可能需要刷新页面才能出现在列表中)。 IPython 以后会记住该笔记本使用哪个内核。