ImportError:没有名为 scipy.sparse 的模块
Posted
技术标签:
【中文标题】ImportError:没有名为 scipy.sparse 的模块【英文标题】:ImportError: No module named scipy.sparse 【发布时间】:2019-07-29 08:08:52 【问题描述】:我使用以下命令在 Ubuntu 上安装了 Scipy:
sudo apt-get install python-scipy
pip install scipy
但在运行导入时,我收到此错误:
ImportError: No module named scipy.sparse
我搜索并尝试了以下并重新安装了 Scipy:
sudo apt-get purge python-scipy
但仍然出现同样的错误。
更新:我没有在我的 python 文件中导入 scipy,只是导入了 keras。
这是错误信息:
(my_env) .. $ python test.py
Using TensorFlow backend.
Traceback (most recent call last):
File "test.py", line 10, in <module>
import keras
File "/home/ ../my_env/lib/python3.5/site-packages/keras/__init__.py", line 3, in <module>
from . import utils
File "/home/ ../my_env/lib/python3.5/site-packages/keras/utils/__init__.py", line 27, in <module>
from .multi_gpu_utils import multi_gpu_model
File "/home/ ../my_env/lib/python3.5/site-packages/keras/utils/multi_gpu_utils.py", line 7, in <module>
from ..layers.merge import concatenate
File "/home/ ../my_env/lib/python3.5/site-packages/keras/layers/__init__.py", line 4, in <module>
from ..engine.base_layer import Layer
File "/home/ ../my_env/lib/python3.5/site-packages/keras/engine/__init__.py", line 8, in <module>
from .training import Model
File "/home/ ../my_env/lib/python3.5/site-packages/keras/engine/training.py", line 21, in <module>
from . import training_arrays
File "/home/../my_env/lib/python3.5/site-packages/keras/engine/training_arrays.py", line 8, in <module>
from scipy.sparse import issparse
ImportError: No module named 'scipy.sparse'
【问题讨论】:
***.com/questions/2213551/installing-scipy-with-pip 你需要 libatlas-base-dev gfortran 向我们展示您的导入行、完整的错误回溯和您的项目文件结构。 @BalázsNagyillés 现在尝试了,同样的错误 @KlausD。问题已更新 在 SO 上,我们真的更喜欢文字而不是屏幕截图。 【参考方案1】:在 Ubuntu/Debian 上:
sudo apt-get install python3-scipy
注意python
中的3
,它对我有用。
【讨论】:
【参考方案2】:scipy 路径混淆了。 卸载
pip uninstall scipy
使用 conda 安装对我有用
conda install scipy
【讨论】:
你也可以使用conda install -c conda-forge scipy
【参考方案3】:
在 Ubuntu 18.04 及更高版本中,您可以使用 sudo apt install python3-scipy python3-keras
安装适用于 Python 3 的 Scipy 和 Keras,您会很高兴,但是您使用的是 Ubuntu 16.04,并且您安装了与 TensorFlow 不兼容的适用于 Python 2 的 Scipy Python 3.4、3.5 和 3.6,因此请使用以下命令安装 Python 3 的默认 Scipy 包:
sudo apt install python3-scipy
有关在 Ubuntu 中安装 TensorFlow 的更多说明,请阅读 this answer。值得一读,因为从现在开始使用 TensorFlow 时,您将不得不检查软件包版本的兼容性。
如果该命令的目的是升级 Scipy,则命令 pip install scipy
也不正确。升级 Scipy 的正确命令应该是 pip install --upgrade --user scipy
,即使这样它也没有用,因为您当前安装的 scipy 仅适用于 Python 2,而您的 TensorFlow 适用于 Python 3。
【讨论】:
pip install --upgrade --user scipy
解决了我的问题,谢谢。【参考方案4】:
只是为了确保您在终端中安装了 Scipy 的 Python 版本:
which Python
那就试试吧:
pip freeze
获取所有已安装包的列表。
也许您有多个 python 版本,并且已将软件包安装到一个并尝试使用另一个执行您的代码。
【讨论】:
那么我认为您的 Scipy 安装出错了。这次尝试卸载安装wheel文件:lfd.uci.edu/~gohlke/pythonlibs/#scipy 执行 which python .. 但使用 python -- version .. pythn3.5.2 和 from pip freeze scipy==1.2.1 时没有显示 你试过通过wheel文件安装吗? 我也建议尝试安装 Anaconda 发行版。这将节省大量安装软件包和此类问题的时间。【参考方案5】:试试
pip3 install scipy
并安装 pip3
sudo python3 get-pip.py
【讨论】:
【参考方案6】:您使用的是 Python 3,但使用 pip 为 Python 2 安装了 scipy。 使用:
pip3 install scipy
或:
sudo apt install python3-scipy
【讨论】:
【参考方案7】:改为使用 pip 安装,运行:
pip install scipy
这对我有用,希望对你有帮助!
编辑:忘记您使用的是 python 3.x,改为运行:
pip3 install scipy
【讨论】:
以上是关于ImportError:没有名为 scipy.sparse 的模块的主要内容,如果未能解决你的问题,请参考以下文章
ImportError:没有名为 websocket 的模块
ImportError:没有名为“backports”的模块