【问题标题】:Some modules can be imported in python previously but now can only be imported in ipython2一些模块以前可以在python中导入,但现在只能在ipython2中导入
【发布时间】:2019-02-18 18:58:54
【问题描述】:

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

ImportError: No module named PIL(numpy,torch...)

运行此命令时:sudo pip install numpy

返回:

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

运行此命令时:sudo pip2 install numpy

return:已经满足要求(使用--upgrade 升级):numpy in /usr/lib/python2.7/dist-packages

当我跑步时: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 运行脚本并导入这些模块。

【问题讨论】:

  • 好吧,看来我安装了导致这个问题的 miniconda。我怎样才能摆脱这个?

标签: python linux python-2.7 numpy


【解决方案1】:

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

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

conda create -n test_env python=2.7

conda 激活 test_env

conda 安装 ipykernel

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-17
    • 2017-05-04
    • 2021-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多