是否可以在 conda 或 virtualenv 中启动 ipython shell(在终端中)? ipython shell 应该属于各自的环境。
我知道一种在 env 中启动 jupyter notebook 的方法,方法是为虚拟 env 创建 kernelspecs,然后在 jupyter notebook 中选择 env 内核。
这是链接:http://help.pythonanywhere.com/pages/IPythonNotebookVirtualenvs
但这只是为当前环境设置了 jupyter notebook。有没有对 ipython shell 做同样的事情
请您参考如下方法:
Grisha Levit 给出的答案几乎解决了问题。所以,我正在写答案的完整细节,如何在特定环境中设置 ipython 控制台。
1.) 激活虚拟环境:
source activate <environment-name>
2.) 从虚拟环境中:
jupyter kernelspec install-self --user
3.) 这将为您的虚拟环境创建一个 kernelspec 并告诉您它在哪里:
- 在 home/username/.local/share/jupyter/kernels/pythonX 中安装了 kernelspec 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 并将名为 display_name 的 JSON 键更改为你喜欢的名称.
6.) 在 virtualenv 中运行 jupter/ipython 控制台。
jupyter console --kernel <kernel-name>
7.) 这将为当前的 virtualenv 启动 jupyter 控制台/shell,您还可以在 IPython notebook 菜单中看到内核:Kernel -> Change kernel 然后切换到它(您可能需要刷新页面在它出现在列表中之前)。 IPython 会记住从那时起该笔记本使用哪个内核。