在尝试以不同方式导入名为 rmod2 的 python 模块时,我注意到一些看似奇怪的行为。如果我从rmod2.py文件所在的目录启动 python,它工作正常。但是,如果我将文件移动到其他模块所在的另一个文件夹,它将不再按预期工作。模块/包文件夹是/usr/lib/pymodules/python2.7它也包含在sys.path中。所以我创建了文件夹/usr/lib/pymodules/python2.7/rmod2并将一个空的__init__.py和rmod2.py放在那里。如果我没有__init__.py我得到:
>>> import rmod2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named rmod2
使用__init__.py文件,导入似乎工作,但包是空的:
>>> import rmod2
>>> dir()
['__builtins__', '__doc__', '__name__', '__package__', 'rmod2']
>>> dir(rmod2)
['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__']
>>> rmod2.__path__
['/usr/lib/pymodules/python2.7/rmod2']
>>> rmod2.__file__
'/usr/lib/pymodules/python2.7/rmod2/__init__.py'
有人可以告诉我发生了什么,以及如何修复它以在导入时实际加载模块内容?