python-3.8 - 导入模块时未调用 __init__.py
问题描述
我有一个我写的模块,结构如下
mymodule
- mymodule
- foo.py
- bar.py
- __init__.py
- README.md
- env
我的__init__.py
包括:
print('This should print something if called, right?')
from .foo import *
from .bar import *
并且 foo 和 bar 分别包含类Foo
和Bar
。
testing_imports.py
然后在依赖于类的文件的另一个目录中Foo
,Bar
在这些脚本中,我导入如下mymodule
代码:
import sys
sys.path.append(PATH_TO_DIRECTORY/mymodule)
import mymodule # I would expect that print statement in my __init__.py to print here
f = Foo()
哪个返回
NameError: name 'Foo' is not defined
当我使用时,dir(mymodule)
我回来了['__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__']
,这表明在我导入它时在我的模块或 init 中没有找到任何东西。
如果我改变我testing_imports.py
的使用
from mymodule.foo import Foo
然后我可以创建一个类Foo
,如果我使用dir(mymodule)
我foo
会在命名空间中看到。
似乎我__init__.py
没有像我期望的那样被调用......因为没有任何东西被打印出来。
任何人都可以澄清正确的做法__init__.py
吗?谢谢你。
解决方案
推荐阅读
- reactjs - 如何在 React 中的对象数组上使用 map 函数
- c# - 具有潜在分组层的 C# LINQ 问题
- google-cloud-platform - 无法在 AI Platform 中启动/停止 AI Platform Notebook 实例,但能够在 Compute Engine 中启动/停止
- python - 如何将 Pandas 数据框转换为 python 字典?
- typescript - 如何在 Web Worker 中运行 handpose tfjs 模型
- kubernetes - 无法理解 YAML 文件
- r - 错误:“treesnip”的包或命名空间加载失败
- gnuplot - 无法从数据中生成颜色图
- assembly - Lisp 编译器的汇编器输出不正确
- javascript - 按下按钮即可在标记上居中地图