Python:无法在自己的模块中找到任何函数?
我创建了一个自己的模块,文件名是 mymodule.py
。这个文件里面包含了:
def testmod():
print "test module success"
我把这个文件放在了 /Library/Python/2.7/site-packages/mymodule/mymodule.py
这个位置。
我还添加了一个 __init__.py
文件,这些文件经过编译后生成了:
__init__.pyc
和 mymodule.pyc
然后在 Python 控制台中,我用下面的命令导入它:
import mymodule
这个操作没有问题。
但是当我尝试使用 mymodule.testmod()
时,出现了以下错误:
AttributeError: 'module' object has no attribute 'testmod'
所以看起来这个模块里好像没有这个函数?
1 个回答
16
你有一个叫做 package 的东西,名字是 mymodule
,里面包含了一个 module,同样叫 mymodule
。这个函数是模块的一部分,而不是包的一部分。
首先,你需要导入这个模块:
import mymodule.mymodule
然后你可以在这个模块上调用这个函数:
mymodule.mymodule.testmod()
你可以使用 from ... import
和 import ... as
来精确控制导入的内容:
from mymodule import mymodule
mymodule.testmod()
或者
from mymodule import mymodule as nestedmodule
nestedmodule.testmod
或者
from mymodule.mymodule import testmod
testmod()
等等。