title: Are there rules for naming single-module Python packages?
body: <p>Should the name I give to the lone module in a Python package match the name of the package?</p>
  
  <p>For example if I have a package with a single module with the structure</p>
  
  <pre><code>super-duper/
      super/
          __init.py___
          mycode.py
          ...
  </code></pre>
  
  <p>I can create a package <code>super-duper</code> on PyPi which, when installed, will have two folders in <code>site-packages</code> with names that don't match:</p>
  
  <pre><code> super/
   super_duper-1.2.3.dist-info/
  </code></pre>
  
  <p>which means that to import my project I use</p>
  
  <pre><code>import super
  </code></pre>
  
  <p>rather than the actual package name (<code>super_duper</code>)</p>
  
  <p>This seems to be against common practice (judging from the folders for early every other package I see in <code>site-packages</code>) which follow the pattern</p>
  
  <pre><code> same_name/
   same_name-1.2.3.dist-info/
  </code></pre>
  
  <p>for the PyPi package <code>same-name</code>.</p>
  
  <p>Should I instead (always) structure my projects so as</p>
  
  <pre><code>super-duper/
      super_duper/
          __init.py___
          mycode.py
          ...
  </code></pre>
  
  <p>to ensure that the package name and module import name "match":</p>
  
  <pre><code>import super_duper
  </code></pre>
  
  <p>Is there a relevant best practice or rule I should be following?</p>