Python 通配符导入
导入模块时遇到奇怪的问题:
文件结构:
pages/
test.py
spawn.py
在spawn.py文件中,如果我这样做:
from pages import test
一切都按预期工作。
但是如果我这样做:
from pages import *
我得到:
NameError: name 'test' is not defined
我没有收到导入错误(ImportError)。我把代码中除了两行以外的其他部分都注释掉了。在'pages'目录下有一个init.py文件,虽然这应该没关系,因为我能导入它,只是不能使用。我尝试过更改文件名,也在不同的机器上试过,都是Debian 6.0。Python版本是2.6.6。
有什么想法吗?
2 个回答
1
你需要在 pages/__init__.py
里加上 import test
。
虽然 pages
是一个模块,但这并不意味着它会自动把同一文件夹里的所有文件都导入进来。你还是得明确写出你想要导入的模块名(或者写一些代码让它们自动导入)。
0
这很重要,因为 pages/__init__.py
文件里包含了当你使用 from pages import *
时会导入的内容。