python 通配符导入

发布于 2024-10-25 04:27:26 字数 497 浏览 1 评论 0原文

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

文件结构:

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

有什么想法吗?

Strange problem when importing modules:

File structure:

pages/
      test.py
spawn.py

From spawn.py, if I do

from pages import test

everything works as expected.

If I do

from pages import *

I get

NameError: name 'test' is not defined

I don't get ImportError. I have commented out everything but two lines of code. I have init.py in the 'pages' dir, not that is should matter since I'm able to import just not use. I have tried changing filenames. Have tried on different machines, both Debian 6.0 though. Python version 2.6.6

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

骑趴 2024-11-01 04:27:26

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

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

You have to put import test in pages/__init__.py.

Just because pages is a module does not mean it magically imports all the files in the same folder. You still have to name the modules you want to import (or write code that imports them automatically).

眼前雾蒙蒙 2024-11-01 04:27:26

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

It matters because the pages/__init__.py contains the symbols which from pages import * will import

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文