Python 通配符导入

0 投票
2 回答
2278 浏览
提问于 2025-04-16 14:08

导入模块时遇到奇怪的问题:

文件结构:

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 * 时会导入的内容。

撰写回答