我可能会缺少一些明显的东西,但是无论如何:
当您像os
在python中那样导入软件包时,您可以直接使用任何子模块/子软件包。例如,这有效:
>>> import os
>>> os.path.abspath(...)
但是我有自己的软件包,其结构如下:
FooPackage/
__init__.py
foo.py
并且这里相同的逻辑不起作用:
>>> import FooPackage
>>> FooPackage.foo
AttributeError: 'module' object has no attribute 'foo'
我究竟做错了什么?
您需要导入子模块:
import FooPackage.foo
您正在寻找的foo
是FooPackage/__init__.py
。您可以通过将import FooPackage.foo as foo
(或from . import foo
)放入来解决它FooPackage/__init__.py
,然后Python就能在其中找到foo
。但我建议使用我的第一个建议。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句