在IPython Notebook中使用Python 2.x和Python 3.x.

del*_*tap 244 python ipython python-2.7 python-3.x ipython-notebook

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

我最初有Anaconda.使用Anaconda时,必须更改全局环境变量以选择所需的python版本,然后才能启动IPython.这不是我想要的,所以我卸载了Anaconda,现在已经使用MacPorts和PiP设置了我自己的安装.看来我还是要用

port select --set python <python version> 
Run Code Online (Sandbox Code Playgroud)

在python 2.x和3.x之间切换.这并不比蟒蛇解决方案好.

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

cel*_*cel 325

这里的想法是安装多个ipython内核.以下是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
Run Code Online (Sandbox Code Playgroud)

重启jupyter笔记本后,新内核可通过图形界面获得.请注意,必须在新环境中明确安装新软件包.conda文档中的管理环境部分提供了更多信息.

手动注册内核

不想使用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
Run Code Online (Sandbox Code Playgroud)

配置python3.6环境:

conda create -n py36 python=3.6
conda activate py36
conda install notebook ipykernel
ipython kernel install --user
Run Code Online (Sandbox Code Playgroud)

之后,你应该能够选择之间python2
,并python3创造了该接口一个新的笔记本时.

此外,如果要更改内核的名称,可以传递--name--display-name选项ipython kernel install.有关ipython kernel install --help更多信息,请参阅.

  • 如果你想在不需要root的情况下设置kernelspecs,你可以执行`ipython kernelspec install-self --user`来为当前用户安装它们. (9认同)
  • 关键项目是你必须安装nb_conda_kernels它不是我最初的Anaconda!谢谢! (7认同)

小智 264

如果您在Python 3上运行Jupyter,您可以设置如下的Python 2内核:

python2 -m pip install ipykernel

python2 -m ipykernel install --user
Run Code Online (Sandbox Code Playgroud)

http://ipython.readthedocs.io/en/stable/install/kernel_install.html

  • 如果你已经设置了python2并且需要python3,则将'2'切换为'3'.我不明白为什么这不是最佳答案,它肯定是奥卡姆剃刀赢得的,它对我有用. (48认同)
  • 完美的工作.确实应该是第一个答案. (6认同)
  • 这工作,但它没有链接到我的系统python 2与额外的包.有没有办法链接到现有的python二进制/可执行文件? (3认同)
  • python2命令包含在python本身?请详细解释这个答案.:) (2认同)

Mik*_*ler 37

使用当前版本的Notebook/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)", 
        "language": "python", 
        "argv": [
            "python3", 
            "-c", "from IPython.kernel.zmq.kernelapp import main; main()", 
            "-f", "{connection_file}"
        ], 
        "codemirror_mode": {
            "version": 2, 
            "name": "ipython"
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 重启笔记本服务器.

  4. 从下拉菜单"新建"中选择"Python 3"
  5. 使用Python 3笔记本
  6. 从下拉菜单"新建"中选择"Python 2"
  7. 使用Python 2笔记本


cel*_*cel 37

这些说明解释了如何在非anaconda用户的不同虚拟环境中安装python2和python3内核.如果您使用的是anaconda,请找到我的另一个答案,找到直接针对anaconda量身定制的解决方案.

我假设你已经jupyter notebook安装好了.


首先要确保你有一个python2和一个可用的python3口译员pip.

在ubuntu上你会安装这些:

sudo apt-get install python-dev python3-dev python-pip python3-pip
Run Code Online (Sandbox Code Playgroud)

接下来准备并注册内核环境

python -m pip install virtualenv --user

# configure python2 kernel
python -m virtualenv -p python2 ~/py2_kernel
source ~/py2_kernel/bin/activate
python -m pip install ipykernel
ipython kernel install --name py2 --user
deactivate

# configure python3 kernel
python -m virtualenv -p python3 ~/py3_kernel
source ~/py3_kernel/bin/activate
python -m pip install ipykernel
ipython kernel install --name py3 --user
deactivate
Run Code Online (Sandbox Code Playgroud)

为了简化操作,您可能希望将激活命令的shell别名添加到shell配置文件中.根据您使用的系统和外壳,可以是例如~/.bashrc,~/.bash_profile~/.zshrc

alias kernel2='source ~/py2_kernel/bin/activate'
alias kernel3='source ~/py3_kernel/bin/activate'
Run Code Online (Sandbox Code Playgroud)

重新启动shell后,您现在可以在激活要使用的环境后安装新软件包.

kernel2
python -m pip install <pkg-name>
deactivate
Run Code Online (Sandbox Code Playgroud)

要么

kernel3
python -m pip install <pkg-name>
deactivate
Run Code Online (Sandbox Code Playgroud)


del*_*tap 22

有一个解决方案可以让我通过配置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
Run Code Online (Sandbox Code Playgroud)

对于python 3.x:

$ cd /opt/local/Library/Frameworks/Python.framework/Versions/3.4/bin
$ sudo ./ipython kernelspec install-self
Run Code Online (Sandbox Code Playgroud)

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

选择你的蟒蛇!


mim*_*lea 17

从我的Linux安装我做到了:

sudo ipython2 kernelspec install-self

现在我的python 2又回到了列表中.

参考:

http://ipython.readthedocs.org/en/latest/install/kernel_install.html


更新:

上面的方法现已弃用,将来会被删除.新方法应该是:

sudo ipython2 kernel install

  • 我讨厌将命令随机粘贴到我的Ubuntu安装中,但这对我有用. (2认同)

Aka*_*dra 5

以下是将python2内核添加到jupyter notebook的步骤::

打开终端并创建一个新的python 2环境: conda create -n py27 python=2.7

激活环境:Linux source activate py27或Windowsactivate py27

在env中安装内核: conda install notebook ipykernel

在env之外安装内核: ipython kernel install --user

关闭环境: source deactivate

虽然迟到的答案希望有人发现它有用:p