使用" as"在python中打破导入?

时间:2015-02-26 19:29:38

标签: python import module package

为什么这在python 2.x中运行良好:

>> import matplotlib
>> import matplotlib.pylab

虽然这不是吗?

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

不仅仅是as正在使用的模块的简写/别名吗?第一种情况起作用而第二种情况不起作用是没有意义的。为什么会这样?

您可以使用os / path(来自@kevin)执行此操作:

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

1 个答案:

答案 0 :(得分:2)

当你说

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(粗略的都不存在)

大量免责声明

这可能是一个粗略的过度简化