setup.py not installing data files
http://docs.python.org/distutils/setupscript.html#installing-additional-files
If directory is a relative path, it is interpreted relative to the installation prefix (Python’s sys.prefix for pure-Python packages, sys.exec_prefix for packages that contain extension modules).
This will probably do it:
data_files = [ ("my_module", ["local/lib/python2.7/dist-package/my_module/data1",
"local/lib/python2.7/dist-package/my_module/data2"])]
Or just use join to add the prefix:
data_dir = os.path.join(sys.prefix, "local/lib/python2.7/dist-package/my_module")
data_files = [ ("my_module", [os.path.join(data_dir, "data1"),
os.path.join(data_dir, "data2")])]
UPD:
package_data
accepts dict in format {'package': ['list', 'of?', 'globs*']}
, so to make it work, one should specify shell globs relative to package dir, not the file paths relative to the distribution root.
data_files
has a different meaning, and, in general, one should avoid using this parameter.
With setuptools you only need include_package_data=True
, but data files should be under version control system, known to setuptools (by default it recognizes only CVS and SVN, install setuptools-git
or setuptools-hg
if you use git or hg...)
with setuptools you can:
- in MANIFEST.im:
include my_module/data*
- in setup.py:
setup(
...
include_package_data = True,
...
)