title: __init__.py required for pkgutil.walk_packages in python3?
body: <p>PEP420 makes <code>__init__.py</code> files optional: <a href="https://docs.python.org/3/whatsnew/3.3.html#pep-420-implicit-namespace-packages" rel="noreferrer">https://docs.python.org/3/whatsnew/3.3.html#pep-420-implicit-namespace-packages</a></p>
  
  <p>Though it seems without them, <code>pkgutil.walk_packages</code> does not function as desired: <a href="https://docs.python.org/3/library/pkgutil.html#pkgutil.walk_packages" rel="noreferrer">https://docs.python.org/3/library/pkgutil.html#pkgutil.walk_packages</a></p>
  
  <p>Consider the following example:</p>
  
  <pre><code>$ tree foo
  foo
  ├── bar
  │   ├── baz.py
  │   └── __init__.py
  ├── __init__.py
  └── womp.py
  </code></pre>
  
  <p>And a test script</p>
  
  <pre><code># test.py
  import pkgutil
  
  import foo
  
  
  for _, mod, _ in pkgutil.walk_packages(foo.__path__, foo.__name__ + '.'):
      print(mod)
  </code></pre>
  
  <p>In both python2 and python3 I get the following output:</p>
  
  <pre><code>$ python2.7 test.py
  foo.bar
  foo.bar.baz
  foo.womp
  $ python3.5 test.py
  foo.bar
  foo.bar.baz
  foo.womp
  </code></pre>
  
  <p>Removing the <code>__init__.py</code> files and only using python3, I get this:</p>
  
  <pre><code>$ find -name '__init__.*' -delete
  $ python3.5 test.py
  foo.bar
  </code></pre>
  
  <p>The modules are definitely importable:</p>
  
  <pre><code>$ python3.5 -c 'import foo.bar.baz'
  $
  </code></pre>
  
  <p>Is this a bug?  Am I forced to create the <code>__init__.py</code> files to achieve what I want?</p>