从包中导入模块
我想从包中设置一个模块,按照从Modules Python Tutorial的指令进行设置。我的目录树:从包中导入模块
$ pwd
/home/me/lib/python/pygplib
$ ls *
__init__.py
atcf:
atcf.py __init__.py
我能够导入pygplib
但pygplib.atcf
似乎并不存在:
In [1]: import pygplib
In [2]: dir(pygplib)
Out[2]: ['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__']
我在做什么错?我所有的__init__.py
文件都是空白的。谢谢。
atcf
不会自动导入到pygplib
命名空间,但你可以安排这通过将
import atcf
在pygplib/__init__.py
发生。
谢谢,这正是我所需要的,因为我想在包导入的命名空间中提供子模块。 – milancurcic 2012-08-08 18:26:48
还要注意,如果你想让atcf.py中的东西位于'pygplib.atcf'命名空间中,你需要'将atcf import *'放在'pyglib/atcf/__ init __。py'中。 – unutbu 2012-08-08 18:31:55
导入顶层包时子模块不会被导入,因此不会出现在dir
中。相反,做
from pygplib import atcf
或者
from pygplib.atcf import atcf
是的,就是这样,谢谢。 – milancurcic 2012-08-08 18:26:06
您是否尝试过使用'import pygplib.atcf.atcf'来获取该文件中的内容? – mVChr 2012-08-08 18:21:15