首页 > 解决方案 > 一些模块以前可以在python中导入,但现在只能在ipython2中导入

问题描述

以前我使用 pip 安装了 pytorch,PIL,numpy...。之后我安装了python3。因此 ipython 从 python2 切换到 python3。我必须使用 ipython2 来启动 python2 内核。这些模块在 ipython2 中仍然运行良好,但是当我使用 python、python2、python2.7 运行 python 脚本时,它们都会引发 ImportError:

ImportError:没有名为 PIL 的模块(numpy,torch ...)

运行此命令时:sudo pip install numpy

返回:

已满足要求:/usr/local/lib/python3.5/dist-packages (1.15.1) 中的 numpy

运行此命令时:sudo pip2 install numpy

返回:已满足要求(使用 --upgrade 升级):/usr/lib/python2.7/dist-packages 中的 numpy

当我运行时:python, import sys, sys.path

表明 :

['', '/home/szy/miniconda2/lib/python27.zip', '/home/szy/miniconda2/lib/python2.7', '/home/szy/miniconda2/lib/python2.7/plat- linux2', '/home/szy/miniconda2/lib/python2.7/lib-tk', '/home/szy/miniconda2/lib/python2.7/lib-old', '/home/szy/miniconda2/lib /python2.7/lib-dynload','/home/szy/.local/lib/python2.7/site-packages','/home/szy/miniconda2/lib/python2.7/site-packages']

numpy的位置不在其中。和 ipython2 中的 sys.path:

['', '/usr/local/bin', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2 .7/lib-tk'、'/usr/lib/python2.7/lib-old'、'/usr/lib/python2.7/lib-dynload'、'/home/szy/.local/lib/python2 .7/site-packages'、'/usr/local/lib/python2.7/dist-packages'、'/usr/lib/python2.7/dist-packages'、'/usr/local/lib/python2. 7/dist-packages/IPython/extensions','/home/szy/.ipython']

怎么了?以前我可以用 python 运行脚本并导入这些模块。

标签: pythonlinuxpython-2.7numpy

解决方案


确保您在 bashrc 中给出的 python 路径是正确的。由于 python 环境中存在混淆,因此最好使用 conda 环境进行相同的尝试。为此,您可以按照以下步骤操作:

创建环境并使用以下命令激活它:

conda create -n test_env python=2.7

conda 激活 test_env

conda 安装 ipykernel

ipython 内核安装 --name test_env --user

然后在您创建的环境中安装所需的包并尝试将其导入创建的环境中。


推荐阅读