在IPython笔记本中同时使用Python 2.x和Python 3.x

我使用IPython笔记本,希望能够在IPython中选择创建2.x或3.x的python笔记本。

我最初使用的是Anaconda。 在Anaconda中,必须改变一个全局环境变量来选择你想要的python版本,然后才能启动IPython。 这不是我想要的,所以我卸载了Anaconda,现在用MacPorts和PiP建立了我自己的安装。 看来,我还是得用

port select --set python <python version> 

在python 2.x和3.x之间切换,这并不比Anaconda的解决方案好。

是否有办法在启动IPython笔记本后选择要使用的python版本,最好是用我现在的MacPorts构建?

这里的想法是安装多个ipython内核。这里是Anaconda的说明。如果你不使用anaconda,我最近添加了说明,使用纯virtualenvs。

Anaconda >=4.1.0

从4.1.0版本开始,anaconda包含了一个特殊的包nb_conda_kernels,可以检测到带有笔记本内核的conda环境并自动注册。这使得使用新的python版本和创建新的conda环境一样简单。

conda create -n py27 python=2.7 ipykernel
conda create -n py36 python=3.6 ipykernel

在重启jupyter notebook之后,新的内核可以通过图形界面获得。请注意,新的软件包必须明确安装到新环境中。conda文档中的Managing environments部分提供了更多信息。

手动注册内核

不想使用nb_conda_kernels或者仍然使用旧版本的anaconda的用户可以使用以下步骤手动注册ipython内核。

配置python2.7环境。

conda create -n py27 python=2.7
conda activate py27
conda install notebook ipykernel
ipython kernel install --user

配置 "python3.6 "环境。

conda create -n py36 python=3.6
conda activate py36
conda install notebook ipykernel
ipython kernel install --user

之后,你应该能够在界面上创建新的笔记本时,在python2python3之间进行选择。 和 "python3 "之间进行选择。

此外,如果你想改变内核的名称,你可以向ipython kernel install传递--name--display-name选项。更多信息请参见ipython kernel install --help

评论(37)

使用当前版本的笔记本/Jupyter,你可以创建一个Python3内核。在用Python 2从命令行启动一个新的笔记本应用程序后,你应该在下拉菜单 "新建 "中看到一个条目 "Python 3"。这就给了你一个使用 Python 3 的笔记本。因此,你可以有两个并排的不同 Python 版本的笔记本。

细节

1.创建这个目录:mkdir -p ~/.ipython/kernels/python3。 2.创建这个文件~/.ipython/kernels/python3/kernel.json,内容如下。

    {
        "display_name": "IPython (Python 3)",
        "语言": "python"。
        "argv"。[
            "Python3"。
            "-c", "从IPython.kernel.zmq.kernelapp导入main; main()"。
            "-f", "{connection_file}"
        ],
        "codemirror_mode"。{
            "版本": 2,
            "name": "ipython"
        }
    }

3.重新启动笔记本服务器。 4.从下拉菜单 "新建 "中选择 "Python 3"。 5.使用Python 3 笔记本工作 6.从下拉菜单 "新建 "中选择 "Python 2"。 7.使用Python 2 笔记本工作

评论(8)
解决办法

有一个解决方案可以让我通过配置Ipython kernelspec来保留我的MacPorts安装。

要求。

  • MacPorts被安装在通常的/opt目录中
  • python 2.7 是通过 macports 安装的
  • python 3.4 是通过 macports 安装的。
  • python 2.7已经安装了Ipython。
  • 为python 3.4安装了Ipython。

对于Python 2.x。

$ cd /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin
$ sudo ./ipython kernelspec install-self

对于Python 3.x:

$ cd /opt/local/Library/Frameworks/Python.framework/Versions/3.4/bin
$ sudo ./ipython kernelspec install-self

现在你可以打开一个Ipython笔记本,然后选择一个python 2.x或python 3.x的笔记本。

![选择你的Python!][1]

评论(5)