python Spyder无法导入numpy

1 投票
2 回答
25641 浏览
提问于 2025-04-18 05:31

我正在使用Windows 7和Python 2.7的Spyder 2.2.5写一个脚本。

一开始我尝试了各种导入的方法:

from numpy import *

或者

import numpy

还有

import numpy as np

但是,每次我使用numpy的地方,编译时都会出现错误。

QR10 = numpy.array(QR10,dtype=float)
QR20 = numpy.array(QR20,dtype=float)
QR11 = numpy.array(QR11,dtype=float)
QR21 = numpy.array(QR21,dtype=float)

在这里输入图片描述

不过,即使有30个错误,这个脚本在运行时还是能正常工作……

有没有人能帮帮我?

2 个回答

0
import numpy as np
QR10 = np.array(QR10,dtype=float)  # instead of numpy.array

然后使用

4

Python其实是不能被编译的。Spyder只是用Pylint进行了一些静态代码分析。根据你使用的Pylint版本,可能会出现一些bug或者无法检测到的情况。

举个例子,import语句(或者到达它的路径)可能在一个条件块里,这种情况要等到程序运行时才能解决。因为你在使用Spyder,也有可能是你把import语句直接放在了控制台,或者放在了一个单独的文件里,然后在脚本中使用这个导入的模块。

你可以试着看看用下面这样的脚本是否会出现同样的错误:

import numpy

QR10 = [1, 2, 3]
QR20 = [1, 2, 3]
QR11 = [1, 2, 3]
QR21 = [1, 2, 3]

QR10 = numpy.array(QR10,dtype=float)
QR20 = numpy.array(QR20,dtype=float)
QR11 = numpy.array(QR11,dtype=float)
QR21 = numpy.array(QR21,dtype=float)

在这里你应该不会看到E0602这个错误。不过有趣的是,你可能会看到[E1101] Module 'numpy' has no 'array' member的错误,因为实际上numpy对成员进行了动态定义,所以Pylint无法知道这一点(你可以在这里看到),而这个bug其实已经解决了。

这个故事的道理是,Pylint的错误不应该让你夜不能寐。看到报告是好事,但如果你确定你的代码是合理的并且运行正常,那你可以选择忽略这些错误——不过,尝试了解为什么会出现错误总是个不错的练习。

撰写回答