ImportError: 没有名为scipy.sparse的模块。

7

我使用以下命令在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'

你需要安装libatlas-base-dev和gfortran来使用pip安装scipy。 - Balázs Nagyillés
请展示您的导入行、完整的错误回溯和项目文件结构。 - Klaus D.
@BalázsNagyillés 我现在尝试了一下,还是出现了同样的错误。 - userInThisWorld
1
我们在SO上更喜欢文本而不是截图。 - Klaus D.
@KlausD。好的,已更新! - userInThisWorld
显示剩余3条评论
8个回答

5

Scipy路径混乱。卸载

pip uninstall scipy

使用conda安装对我很有效。
conda install scipy

你也可以使用conda install -c conda-forge scipy进行安装。 - kitokid

2
在Ubuntu 18.04及更高版本中,您可以使用sudo apt install python3-scipy python3-keras安装Python 3的Scipy和Keras并开始使用。但是,您正在使用Ubuntu 16.04,并且已为Python 2安装了不兼容TensorFlow for Python 3.4、3.5和3.6的Scipy包。因此,请使用以下命令安装Python 3的默认Scipy包代替:
sudo apt install python3-scipy  

如需在Ubuntu上安装TensorFlow的进一步说明,请阅读此答案。这很值得一读,因为从现在开始,您将不得不检查软件包版本兼容性才能使用TensorFlow。

如果pip install scipy命令的目的是升级Scipy,则该命令也是不正确的。正确的升级Scipy命令应该是pip install --upgrade --user scipy,即使这样做也是无用的,因为您当前安装的scipy仅适用于Python 2,而您的TensorFlow适用于Python 3。


pip install --upgrade --user scipy 解决了我的问题,谢谢。 - ah bon

0

在Ubuntu/Debian上:

sudo apt-get install python3-scipy

请注意在 Python 中的数字 3,这对我很有效。

0

你正在使用Python 3,但用pip安装scipy时却为Python 2。
请使用:

pip3 install scipy  

或者:

sudo apt install python3-scipy

0

尝试

pip3 install scipy

安装pip3
sudo python3 get-pip.py

0

为确保您安装的Scipy是哪个Python版本,请在终端中尝试:

which Python

然后尝试:

pip freeze 

获取所有已安装软件包的列表。

也许您安装了多个Python版本,并将软件包安装到其中一个版本,然后尝试使用另一个版本来执行代码。


那么我认为你的Scipy安装出了问题。这次尝试卸载并安装wheel文件:https://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy - Ahmed Hawary
执行 which python 没有任何输出,但是执行 python --version 显示 Python 3.5.2,并且从 pip freeze 中显示 scipy==1.2.1。 - userInThisWorld
你尝试通过wheel文件安装它了吗? - Ahmed Hawary
我也建议尝试安装Anaconda发行版。这将节省大量安装软件包和类似问题的时间。 - Ahmed Hawary

0
你应该升级到最新版本。
pip install --upgrade scipy

你的回答可以通过提供更多的支持性信息来改进。请编辑以添加进一步的细节,比如引用或文档,以便他人可以确认你的回答是否正确。你可以在帮助中心找到关于如何撰写好回答的更多信息。 - undefined

-2

使用pip安装,运行:

pip install scipy

这对我有用,希望能帮到你!

编辑:忘记你正在使用Python 3.x了,改为运行以下代码:

pip3 install scipy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接