假设我有一个名为
my_package
的Python包,其中包含一个名为my_module
的模块和一个名为my_function
的函数。
我试图在Python交互式shell中执行以下导入操作:
>>> from my_package import my_module
>>> my_module.my_function() # => OK
>>> from my_module import my_function # => ImportError: No module named my_module
>>> from my_package.my_module import my_function # => OK
我对上面第三行的ImportError
感到非常惊讶:因为my_module
已经被导入,为什么我不能从中导入一个函数呢?也许我对Python导入系统的工作方式有些误解,任何澄清都将不胜感激!
以下是目录结构和源代码。
my_package
|- __init__.py
|- my_module.py
这是 __init__.py
文件
all = ["my_module"]
这里是 my_module.py
文件
def my_function():
pass