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)
?
回溯(最近一次调用最后一次):文件“你的 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-scipy
和pip3
。【参考方案3】:
我建议您通过
删除 scipyapt-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 的模块的主要内容,如果未能解决你的问题,请参考以下文章
解决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