ImportError:没有名为 scipy 的模块

Posted

技术标签:

【中文标题】ImportError:没有名为 scipy 的模块【英文标题】:ImportError: No module named scipy 【发布时间】:2014-09-08 14:10:27 【问题描述】:

我正在使用 Python 2.7 并试图让 PyBrain 工作。

但即使安装了 scipy,我也会收到此错误 -

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/site-packages/PyBrain-0.3.1-
py2.7.egg/pybrain/__init__.py", line 1, in <module>
    from pybrain.structure.__init__ import *
  File "/usr/local/lib/python2.7/site-packages/PyBrain-0.3.1-py2.7.egg/pybrain/structure/__init__.py", line 1, in <module>
    from pybrain.structure.connections.__init__ import *
  File "/usr/local/lib/python2.7/site-packages/PyBrain-0.3.1-py2.7.egg/pybrain/structure/connections/__init__.py", line 1, in <module>
    from pybrain.structure.connections.full import FullConnection
  File "/usr/local/lib/python2.7/site-packages/PyBrain-0.3.1-py2.7.egg/pybrain/structure/connections/full.py", line 3, in <module>
    from scipy import reshape, dot, outer
ImportError: No module named scipy

我已经使用这个命令安装了 scipy -

sudo apt-get install python-scipy

我明白了——

Reading package lists... Done
Building dependency tree       
Reading state information... Done
python-scipy is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

我该怎么办?

【问题讨论】:

python -c 'import scipy; print(scipy)'? which python? python -c 'import sys; print(sys.path)? 回溯(最近一次调用最后一次):文件“”,第 1 行,在 中 ImportError: No module named scipy and its python 2.7.5 没有sudo有解决办法吗? 对于Windows users 【参考方案1】:

你的 python 不知道你在哪里安装了 scipy。将 scipy 路径添加到PYTHONPATH,希望它能解决您的问题。

【讨论】:

嗨。非常感谢,但你能给我命令吗?Linux新手, 如果您使用的是 bash,在您的 bash 配置文件中,您可以添加这一行 export PYTHONPATH="/path/to/scipy:$PYTHONPATH"【参考方案2】:

尝试使用 pip 将其安装为 python 包。你说你已经试过了:

sudo apt-get install python-scipy

现在运行:

pip install scipy

我都跑了,它在我的基于 Debian 的机器上运行。

【讨论】:

我不能 sudo...还有其他解决方案吗?我不明白问题出在哪里,为什么解决了问题? @DragonSpit 如果你有python 3,那么你需要使用对应的名字:python3-scipypip3【参考方案3】:

我建议您通过

删除 scipy
apt-get purge scipy

然后通过安装它

pip install scipy

如果你两者都做,那么你可能会因为版本不同而混淆你的 deb 包管理器。

【讨论】:

【参考方案4】:

为了确保轻松正确地安装 python,从一开始就使用 pip

要安装 pip:

$ wget https://bootstrap.pypa.io/get-pip.py
$ sudo python2 get-pip.py   # for python 2.7
$ sudo python3 get-pip.py   # for python 3.x

使用 pip 安装 scipy:

$ pip2 install scipy    # for python 2.7
$ pip3 install scipy    # for python 3.x

【讨论】:

【参考方案5】:

如果您需要在 Windows 上的 Pyhton 环境中获取 scipy,您可以在此处获取 *.whl 文件:

http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy

请记住,您需要先安装numpy+mkl,然后才能安装scipy

http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy

下载正确的 *.whl 文件后,只需在下载目录中打开 cmd 提示符并运行 pip install *.whl

【讨论】:

【参考方案6】:

对于 Windows 用户:

几天后我找到了这个解决方案。首先你要安装哪个python版本?

如果你想要 Python 2.7 版本:

第 1 步:

scipy-0.19.0-cp27-cp27m-win32.whl

scipy-0.19.0-cp27-cp27m-win_amd64.whl

numpy-1.11.3+mkl-cp27-cp27m-win32.whl

numpy-1.11.3+mkl-cp27-cp27m-win_amd64.whl

如果你想要 Python 3.4 版本:

scipy-0.19.0-cp34-cp34m-win32.whl

scipy-0.19.0-cp34-cp34m-win_amd64.whl

numpy-1.11.3+mkl-cp34-cp34m-win32.whl

numpy-1.11.3+mkl-cp34-cp34m-win_amd64.whl

如果你想要 Python 3.5 版本:

scipy-0.19.0-cp35-cp35m-win32.whl

scipy-0.19.0-cp35-cp35m-win_amd64.whl

numpy-1.11.3+mkl-cp35-cp35m-win32.whl

numpy-1.11.3+mkl-cp35-cp35m-win_amd64.whl

如果你想要 Python 3.6 版本:

scipy-0.19.0-cp36-cp36m-win32.whl

scipy-0.19.0-cp36-cp36m-win_amd64.whl

numpy-1.11.3+mkl-cp36-cp36m-win32.whl

numpy-1.11.3+mkl-cp36-cp36m-win_amd64.whl

链接:[点击[1]

完成安装后,转到您的目录。

例如我的目录:

cd C:\Users\asus\AppData\Local\Programs\Python\Python35\Scripts>
pip install [where/is/your/downloaded/scipy_whl.]

第 2 步:

Numpy+MKL

再次来自基于python版本的同一网站:

之后在 Script 文件夹中再次使用相同的东西

cd C:\Users\asus\AppData\Local\Programs\Python\Python35\Scripts>
pip3 install [where/is/your/downloaded/numpy_whl.]

并在 python 文件夹中测试它。

Python35>python 
Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:18:55) [MSC v.1900 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. 
>>>import scipy

【讨论】:

谢谢,它对我有用。为了节省一些时间,我们可以在这里找到这些***silx.org/pub/wheelhouse :)【参考方案7】:

尝试使用 pip 将其安装为 python 包,如下所示

$ sudo apt-get install python-scipy

如果您想运行 python 3.x 脚本,请通过以下方式安装 scipy:

$ pip3 install scipy
Otherwise install it by:
$ pip install scipy

【讨论】:

【参考方案8】:

我的问题是我在使用 pip3 安装时拼写错误的库之一,这最终导致同一命令中所有其他下载的库没有被安装。只需再次对它们运行 pip3 install ,它们应该会从它们的缓存中安装。

【讨论】:

最好是复制命令而不是输入命令,如果您拼错命令,这可能会导致安装恶意库/包或其他一些相关错误。最好小心域名抢注和供应链漏洞。【参考方案9】:

对于 Windows 用户: pip install -U scipy

【讨论】:

【参考方案10】:

我遇到了同样的问题,因为我同时安装了 python2.7 和 python3。当我用 python3 运行程序时,我收到了同样的错误。 我用这个命令安装了 scipy,问题已经解决了:

sudo apt-get install python3-scipy

【讨论】:

【参考方案11】:

如果您使用的是 pycharm,请转到设置并在项目解释器子选项卡中单击列表旁边的“+”号,然后在搜索栏中搜索名称“scipy”并安装包。

【讨论】:

对我来说效果很好。谢谢(python v:3.10)【参考方案12】:

这可能太基本了(也许是假设性的),但是 -

Fedora 用户可以使用:

sudo dnf install python-scipy

然后(对于python3.x):

pip3 install scipy

或(对于python2.7):

pip2 install scipy

【讨论】:

【参考方案13】:

使用sudo pip install scipy 安装库,这样以后就不能请求权限了

【讨论】:

【参考方案14】:

在@user5747799 之前的步骤中,它不能直接工作,而是更改 URL (https://bootstrap.pypa.io/pip/2.7/get-pip.py),现在辣在 Ubuntu 20.04 上工作得很好

也可以按照步骤在https://www.fosslinux.com/39384/switching-between-python-2-and-3-versions-on-ubuntu-20-04.htm的版本之间切换

使用替代 URL 安装 pip:

$ wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
$ sudo python2 get-pip.py.2   # for python 2.7 (or verify the result of previous step)
$ sudo python3 get-pip.py   # for python 3.x

使用 pip 安装 scipy:

$ pip2 install scipy    # for python 2.7
$ pip3 install scipy    # for python 3.x

为了验证

$ python

然后

>>> import scipy

没有可显示的错误。

【讨论】:

【参考方案15】:

对于 Mac 运行下面的命令来安装 scipy

$ brew install scipy
$ pip install scipy

【讨论】:

以上是关于ImportError:没有名为 scipy 的模块的主要内容,如果未能解决你的问题,请参考以下文章

导入错误:没有名为“scipy._lib”的模块

解决ImportError: cannot import name 'imread' from 'scipy.misc'

python使用scipy.misc import imread报错:ImportError: cannot import name imread

为啥 ImportError:没有名为 lightgbm 的模块

ImportError: cannot import name '_ni_support' -- 使用 cx-freeze 和 scipy

ImportError:没有名为瓶子的模块