__init__.py到底需要还是不需要?

大佬们,求助
ex/
  bin/
  docs/
  ex47/
          __init__.py
  tests/
          blah_test.py
          __init__.py

在ex目录运行nosetests时候显示Ran 0 test in 0.00s

但是如果我把tests/__init__.py删除,就能运行了nosetests Ran 3 tests in 0.009s

目录下不是应该要有__init__.py才会被认成一个包吗?但是怎么反而需要删除__init__.py才能运行?

奇了怪了。我用的是python 3.9

按照<本方法学python>里面的ex47运行

python3版本已经不严格要求有__init__.py来标记一个包了,原则上基本没有影响,但是一般为了标记是包还是目录(主要是用来给我们方便区分是包还是目录),我们在用IDE创建包时会自动创建__init__.py来标记是一个包,而不是目录