python distutils does not include data_files

2019-01-19 10:54发布

问题:

I am new to distutils.. I am trying to include few data files along with the package.. here is my code..

from distutils.core import setup

setup(name='Scrapper',
      version='1.0',
      description='Scrapper',      
      packages=['app', 'db', 'model', 'util'],
      data_files=[('app', ['app/scrapper.db'])]      
     )

The zip file created after executing python setup.py sdist does not include the scrapper.db file. I have scrapper.db file in the app directory..

thanks for the help.

回答1:

You probably need to add a MANIFEST.in file containing "include app/scrapper.db".

It's a bug in distutils that makes this necessary: anything in data_files or package_data should be included in the generated MANIFEST automatically. But in Python 2.6 and earlier, it is not, so you have to include it in MANIFEST.in.

The bug is fixed in Python 2.7.



回答2:

Try removing MANIFEST, that way distutils will be forced to regenerate it.

Note: I've been using python 3.x, so I don't know if this works with 2.x or not.