使用Python 2和3

时间:2017-07-21 01:44:46

标签: python-2.7 python-3.x ubuntu docker jupyter

我想使用兼容python 2和3的Jupyter笔记本。我设法运行python 2和3内核但是可用的软件包似乎与我的系统python 2和3不同。

我正在使用docker来设置我的环境,但这也适用于其他Ubuntu 16.10版本。

问题是当我使用需要额外软件包的笔记本时,Jupyter的内核无法识别这些软件包。

长话短说:我正在寻找安装python 2和3的最佳方法,其中包含与Ubuntu上的Jupyter Notebook兼容的其他软件包。

FROM ubuntu:16.10
MAINTAINER Rutger Hofste <rutger.hofste@wri.org>

RUN apt-get update
RUN apt-get install -y git

# Python 2 and Jupyter (legacy that can run python2)
RUN apt-get install python python-pip -y
RUN pip install --upgrade pip
RUN pip install IPython==5.0
RUN pip install jupyter

# Python 3.5.2+
RUN apt-get install python3 -y

# 8.1.2
RUN apt-get install -y python3-pip

# Add Kernel
RUN python3 -m pip install ipykernel
RUN pip3 install --upgrade pip

系统安装的python版本:

root@86e034a8e5ae:/# which python
/usr/bin/python
root@86e034a8e5ae:/# which python3
/usr/bin/python3

Jupyter kernels:
root@86e034a8e5ae:/# jupyter kernelspec list
Available kernels:
  python2    /usr/local/share/jupyter/kernels/python2
  python3    /usr/local/share/jupyter/kernels/python3

2 个答案:

答案 0 :(得分:1)

我建议为你想要的每个Python 2和Python 3环境使用一个pip virtualenv。与Jupyter合作可能有些琐碎,但希望对你来说很简单。

设置您的环境:

$ virtualenv -p python3 my_py3_env

让它与Jupyter合作:

$ source my_py3_env/bin/activate
$ pip install ipykernel
$ python -m ipykernel install --user --name=my_py3_env

您应该能够对要使用的每个环境执行此操作。显然,您需要在每个环境中安装所需的软件包。另外,我还没有使用过Docker,所以你可能需要修改这些命令才能适应。

More info on getting virtualenv working with Jupyter.

答案 1 :(得分:0)

所以发生的事情是,我的pip更新后将其目标目录更改为python 3。你可以通过pip -V和pip3 -V

来检查

重新安装解决了问题: 运行python -m pip install -U --force-reinstall pip