setup.py not installing data files
distutils, python, python-2.7
Solution
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")])]
Problem
I have a Python library that, in addition to regular Python modules, has some data files that need to go in /usr/local/lib/python2.7/dist-package/mylibrary. Unfortunately, I have been unable to convince setup.py to actually install the data files there. Note that this behaviour is under install - not sdist. Here is a slightly redacted version of setup.py ``` module_list = list_of_files setup(name ='Modules', version ='1.33.7', description ='My Sweet Module', author ='PN', author_email ='email', url ='url', packages = ['my_module'], # I tried this. It got installed in /usr/my_module. Not ok. # data_files = [ ("my_module", ["my_module/data1", # "my_module/data2"])] # This doesn't install it at all. package_data = {"my_module" : ["my_module/data1", "my_module/data2"] } ) ``` This is in Python 2.7 (will have to run in 2.6 eventually), and will have to run on some Ubuntu between 10.04 and 12+. Developing it right now on 12.04.