【问题标题】:ImportError: No module named scipy.sparseImportError:没有名为 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'

【问题讨论】:

  • 向我们展示您的导入行、完整的错误回溯和您的项目文件结构。
  • @BalázsNagyillés 现在尝试了,同样的错误
  • @KlausD。问题已更新
  • 在 SO 上,我们真的更喜欢文字而不是屏幕截图。

标签: python python-3.x scipy importerror


【解决方案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
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-02-01
          • 2022-09-24
          • 2013-03-11
          • 2012-12-07
          • 2012-05-23
          • 2015-07-04
          • 2014-03-15
          • 2017-12-29
          相关资源
          最近更新 更多