使用 "as" 会中断 python 中的导入?

using "as" breaks imports in python?

为什么这在 python 中工作正常 2.x:

>> import matplotlib
>> import matplotlib.pylab

而这不是?

>> import matplotlib as mp
>> import mp.pylab
ImportError: No module named mp.pylab

as 不就是正在使用的模块的缩写 hand/alias 吗?第一种情况有效而第二种情况无效是没有意义的。为什么会这样?

你可以用 os/path 做同样的事情(来自@kevin):

>> import os as o
>> import o.path
ImportError: No module named o.path

当你说

import foo.bar

您实质上是在描述它将查找 foo/bar.pyfoo/bar/__init__.py

的导入文件路径

你可以通过创建

来模拟这个

test.py

x=5

test2.py

import test.x

您将看到有关没有模块 x

的错误

这与 as 的别名导入无关,也与 matplotlib 无关...

这就是 import 语句的作用,它描述了在哪里可以找到文件

因此当您键入时

import mp.pylab

您是在告诉文件系统寻找 mp/pylab.pymp/pylab/__init__.py(粗略地说,这两个都不存在)

大型免责声明

这可能过于简单化了