title: 2 techniques for including files in a Python distribution: which is better?
body: <p>I'm working on packaging a small Python project as a zip or egg file so that it can be distributed. I've come across 2 ways to include the project's config files, both of which seem to produce identical results.</p>
  
  <p><strong>Method 1:</strong></p>
  
  <p>Include this code in setup.py:</p>
  
  <pre><code>from distutils.core import setup
  
  setup(name='ProjectName', 
        version='1.0', 
        packages=['somePackage'],
        data_files = [('config', ['config\propFiles1.ini', 
                                  'config\propFiles2.ini', 
                                  'config\propFiles3.ini'])]
        )
  </code></pre>
  
  <p><strong>Method 2:</strong></p>
  
  <p>Include this code in setup.py:</p>
  
  <pre><code>from distutils.core import setup
  
  setup(name='ProjectName', 
        version='1.0', 
        packages=['somePackage']
        )
  </code></pre>
  
  <p>Then, create a MANIFEST.in file with this line in it:</p>
  
  <pre><code>include config\* 
  </code></pre>
  
  <p>Is there any difference between the methods? Which one is preferred? I tend to lean towards the first because then no MANIFEST.in file is necessary at all. However, in the first method you have to specify each file individually while in the second you can just include the whole folder. Is there anything else I should be taking into consideration? What's the standard practice?</p>