python - 一些模块以前可以在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 运行脚本并导入这些模块。
解决方案
确保您在 bashrc 中给出的 python 路径是正确的。由于 python 环境中存在混淆,因此最好使用 conda 环境进行相同的尝试。为此,您可以按照以下步骤操作:
创建环境并使用以下命令激活它:
conda create -n test_env python=2.7
conda 激活 test_env
conda 安装 ipykernel
ipython 内核安装 --name test_env --user
然后在您创建的环境中安装所需的包并尝试将其导入创建的环境中。
推荐阅读
- eclipse - 在 nattable eclispe 中使用 MultiLineTextCellEditor 单击 CellEditorDialog 中的输入按钮时出现问题
- python - 使用自定义函数创建新列
- arrays - Julia:初始化不同类型的数值数组
- ionic-framework - 离子仅包括使用的离子图标
- asp.net - 为什么 IQueryable 在包含函数“false”中一直显示,即使这应该是真的
- pyspark - pyspark foreach/foreachPartition 发送 http 请求失败
- python - 如何摆脱数据中的移动平均线?
- ruby-on-rails - 为什么 ActiveAdmin 呈现空字符串而不是关系的 `to_s` 方法?
- video-streaming - 如何在本地流式传输 RTMP
- r - 如何根据r中的多个变量拆分数据?