python通配符导入

时间:2011-03-21 21:39:25

标签: python import wildcard

导入模块时出现奇怪的问题:

文件结构:

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 个答案:

答案 0 :(得分:1)

您必须将import test放入pages/__init__.py

仅仅因为pages是一个模块并不意味着它会神奇地导入同一文件夹中的所有文件。您仍然必须为要导入的模块命名(或编写自动导入它们的代码)。

答案 1 :(得分:0)

这很重要,因为pages/__init__.py包含from pages import *将导入的符号