title: pytest and why avoid init file
body: <p>Once upon a time, the pytest document now at <a href="https://docs.pytest.org/en/latest/goodpractices.html" rel="nofollow noreferrer">https://docs.pytest.org/en/latest/goodpractices.html</a> used to say:</p>
  
  <blockquote>
    <p>avoid “<code>__init__.py</code>” files in your test directories. This way your tests can run easily against an installed version of <code>mypkg</code>, independently from the installed package if it contains the tests or not.</p>
  </blockquote>
  
  <p>I don't understand following about that quote:</p>
  
  <ol>
  <li>What does it mean by installed version of <code>mypkg</code>? How can I relate installing an app if I have a simple flask app that only says "hello world" when you hit the root at the localhost?</li>
  <li>How is installed version different from installed package?</li>
  <li>What does it mean "if it contains tests or not"? Is it related to test discovery?</li>
  <li>Can someone practically explain how not having <code>__init__.py</code> is good?</li>
  </ol>