Ipython3 和 Ipython2 冲突

Bza*_*azz 2 python ubuntu ipython ipython-notebook

在 Ubuntu 15.04 上,我正确安装了 ipython2 并使用笔记本,条件是我将“/usr/local/lib/python2.7/dist-packages”添加到 PYTHONPATH。

现在,我安装了 python3 和 ipython3。ipython3 notebook完美运行(前提是我从 pythonpath 中删除了上述引用)。但ipython2 notebook返回

Could not start notebook. Please install ipython-notebook
Run Code Online (Sandbox Code Playgroud)

不管 PYTHONPATH。

我在 /usr/bin/ 中安装了 python2 和 python3,在 /usr/local/bin 中安装了 ipython2 和 ipython3。ipythons 与 pip 和 pip3 一起安装。

现在,如果我确实安装了ipython-notebook,它会在 /usr/bin 中安装(我认为)另一个 ipython,这也不起作用。

这有点令人困惑,换句话说,我有一堆乱七八糟的 Python 发行版。下次我应该使用 anaconda 时,我知道。但目前我想坚持这一点。我如何使它工作?

min*_*nrk 5

除了高级用例之外,您很少应该设置 PYTHONPATH,并且您永远不应该将 PYTHONPATH 设置为某个版本的 Python 的 sys.path 上已经存在的标准目录。唯一能做的就是破坏 Python,尤其是已经使用该目录的版本以外的版本。

你是怎么安装的ipython-notebook

要使用 pip 安装笔记本,请执行以下操作:

pip3 install notebook
jupyter notebook
Run Code Online (Sandbox Code Playgroud)

记下该命令已安装文件的路径。它可能会在/usr/local.

如果您获得的 IPython 版本与您预期的不同,那么easy-install.pth您的导入路径可能会混乱。一个常见的问题是旧的和坏的setuptools。您可以使用以下方法进行测试:

python3 -c 'import IPython; print(IPython.__file__)'
Run Code Online (Sandbox Code Playgroud)

和/或

python3 -m site # shows your sys.path
Run Code Online (Sandbox Code Playgroud)

如果您看到以/usr/libin开头的行usr/local/lib/pythonX.Y/dist-packages/easy-install.pth,请将其删除,它们可能会导致导入错误版本的包。

通常,最简单的确定方法是删除包的所有版本并重新开始。您可以尝试pip uninstall ipython,并不断重复,直到它说没有安装版本。您可能还使用 安装了 IPython apt-get,在这种情况下,您可以使用apt-get remove ipython. 一旦你确信你的系统上没有 IPython,你可以再次安装

python2 -m pip install ipython
python3 -m pip install ipython
Run Code Online (Sandbox Code Playgroud)

(如果您希望它同时用于 Legacy Python 和 Python 3)