使用 "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.py
或 foo/bar/__init__.py
的导入文件路径
你可以通过创建
来模拟这个
test.py
x=5
test2.py
import test.x
您将看到有关没有模块 x
的错误
这与 as
的别名导入无关,也与 matplotlib 无关...
这就是 import 语句的作用,它描述了在哪里可以找到文件
因此当您键入时
import mp.pylab
您是在告诉文件系统寻找 mp/pylab.py
或 mp/pylab/__init__.py
(粗略地说,这两个都不存在)
大型免责声明
这可能过于简单化了
为什么这在 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.py
或 foo/bar/__init__.py
你可以通过创建
来模拟这个test.py
x=5
test2.py
import test.x
您将看到有关没有模块 x
的错误这与 as
的别名导入无关,也与 matplotlib 无关...
这就是 import 语句的作用,它描述了在哪里可以找到文件
因此当您键入时
import mp.pylab
您是在告诉文件系统寻找 mp/pylab.py
或 mp/pylab/__init__.py
(粗略地说,这两个都不存在)
大型免责声明
这可能过于简单化了