python导入只能以一种格式工作
当我构建时:python导入只能以一种格式工作,python,python-import,Python,Python Import,当我构建时: import matplotlib pyplot.plot([1,2,3,4]) pyplot.ylabel('some numbers') pyplot.show() 我得到: Traceback (most recent call last): File "/Users/Paulair/Desktop/mathGraphing.py", line 2, in <module> pyplot.plot([1,2,3,4]) NameError: name
import matplotlib
pyplot.plot([1,2,3,4])
pyplot.ylabel('some numbers')
pyplot.show()
我得到:
Traceback (most recent call last):
File "/Users/Paulair/Desktop/mathGraphing.py", line 2, in <module>
pyplot.plot([1,2,3,4])
NameError: name 'pyplot' is not defined
[Finished in 0.2s with exit code 1]
它起作用了 在第一种情况下,需要从matplotlib导入pyplot 如果只导入matplotlib,则必须使用
matplotlib.pyplot.plot(…
)
很抱歉回答错误,pyplot是matplotlib的子模块,它故意不使用简单的import matplotlib
或从matplotlib import*
导入。请参阅。
您必须显式地导入它
对于@Joe Kington的解释,分离的原因是:
在第一种情况下,需要从matplotlib导入pyplot 如果只导入matplotlib,则必须使用
matplotlib.pyplot.plot(…
)
很抱歉回答错误,pyplot是matplotlib的子模块,它故意不使用简单的import matplotlib
或从matplotlib import*
导入。请参阅。
您必须显式地导入它
对于@Joe Kington的解释,分离的原因是:
这就是导入的工作方式。当您导入模块时,您只导入名称
模块
。如果要在该模块中使用项或子模块,您需要:
module.submodule.function(…)
import module.submodule
或import module.submodule as submodule
来自模块导入子模块
或来自模块。子模块导入函数
namererror
在特定情况下,必须显式导入
pyplot
,因为matplotlib
特定子模块本身(除此之外,您可能会注意到,import matplotlib.pyplot as plt
需要一段时间才能执行:这是一个昂贵的导入,而matplotlib
选择默认情况下避免执行,因为核心功能不需要pyplot
)。因此,您需要使用上面方法2
或3
的一些变体显式导入它。这就是导入的工作方式。当您导入模块时,您只导入名称模块
。如果要在该模块中使用项或子模块,您需要:
通过限定名称:module.submodule.function(…)
或者导入所需子模块的名称,如果愿意,请为其提供别名:import module.submodule
或import module.submodule as submodule
或者导入您希望首先使用的模块/函数/类名:来自模块导入子模块
或来自模块。子模块导入函数
否则,Python无法知道某个未定义的名称实际存在的位置,因此它会引发namererror
在特定情况下,必须显式导入pyplot
,因为matplotlib
特定子模块本身(除此之外,您可能会注意到,import matplotlib.pyplot as plt
需要一段时间才能执行:这是一个昂贵的导入,而matplotlib
选择默认情况下避免执行,因为核心功能不需要pyplot
)。因此,您需要使用上面方法2
或3
的一些变体来显式导入它。但是,您是否可以只通过说:import matplotlib?或者您总是必须放置(from)和(import)来导入整个库无处不在?要从matplotlib import*
导入所有您可以使用的。这将从matplotlib
中提取所有名称。您必须看看这是否是一个好主意。我刚刚尝试过,但由于各种原因,在使用matplotlib.pyplot.plot等时不起作用,从matplotli执行导入matplotlib
或b import*
故意不导入matplotlib.pyplot
。因此,您需要以某种方式显式导入matplotlib.pyplot
(例如将matplotlib.pyplot导入为plt
,从matplotlib导入pyplot
等)。分隔的原因是1)允许在导入pyplot
之前调用某些设置命令(例如matplotlib.use
)和2)允许使用matplotlib的其他部分,而无需“大量”导入完整的打印功能。(不过,大部分为#1)但是,是否可以只通过说:import matplotlib导入整个库?或者您总是必须输入(from)和(import)无处不在?要从matplotlib import*
导入所有您可以使用的。这将从matplotlib
中提取所有名称。您必须看看这是否是一个好主意。我刚刚尝试过,但由于各种原因,在使用matplotlib.pyplot.plot等时不起作用,从matplotli执行导入matplotlib
或b导入*
故意不执行
import matplotlib.pyplot as plt
plt.plot([1,2,3,4])
plt.ylabel('some numbers')
plt.show()