From: John H. <jdh...@ac...> - 2005-07-05 22:47:24
|
>>>>> "Bob" == Bob Ippolito <bo...@re...> writes: Bob> On Jun 17, 2005, at 4:09 PM, John Hunter wrote: >>>>>>> "Chris" == Chris Barker <Chr...@no...> writes: >>>>>>> >> >>> Using data_files in this manner at all is usually the wrong >>> thing to do anyway. Python packages should really put the >>> files they need into the package, not some semi-random >>> location on the filesystem. >>> >> Chris> I tend to trust Bob in these matters. What is the logic for Chris> putting all that stuff outside of the package directory? >> I was just following the lead of the distutils documentation >> circa 2003 which is when this section of setup.py written. >> Since distutils had a slot for data_files, I put my data files >> there, which seems reasonable even in hindsight. I'm not >> opposed to putting them somewhere else, especially if someone >> explains the why and how. I do try and preserve compatibility >> with older python versions, so 2.4 only solutions are not a >> good choice at the moment. Bob> Python 2.4 distutils has the functionality built-in, Bob> otherwise you can get it from setuptools (in the Python CVS Bob> sandbox, or from Bob> <http://peak.telecommunity.com/DevCenter/PythonEggs>). There Bob> have been various other hacks throughout the years to do it, Bob> but setuptools is the standard now. Bob> py2app uses setuptools when building itself, and it is Bob> certainly Python 2.3 compatible. Hi Bob, Sorry for the delay getting back on this. I am starting to look at setuptools and have read over (quickly) http://peak.telecommunity.com/DevCenter/PythonEggs A couple of questions: * Are you recommending using the full PythonEggs suite, or just the parts in the default setuptools that comes with python2.4 ? I notice for example, that pkg_resources is not available in Python 2.4.1 setuptools. This is not a huge problem, since it is fairly easy to install/upgrade. Just wondering. * It is not clear to me what the "right" way is to distribute/install data files (eg fonts). You suggest above that the data_files directive is not the right way and that the data files should be placed in the package. I naively tried package_data with from setuptools import setup setup(name="matplotlib", ...snip... package_data = { 'matplotlib.fonts' : glob.glob('fonts/afm/*.afm'), }, package_dir = {'': 'lib'}, ) where fonts/afm in the relative path has a bunch of *.afm fonts, but no files were added to site-packages/matplotlib/fonts/ when I did a 'sudo python setup.py install'. I read over the py2app setup at http://svn.red-bean.com/bob/py2app/trunk/setup.py but still was unsure how to proceed. The PythonEgg resource documentation spends a fair amount of space on how to "access" resources, but I missed how to specify them for the distribution (http://peak.telecommunity.com/DevCenter/PythonEggs#accessing-package-resources) So that is a long-winded way of asking "how should data files be placed in the package for distribution?" Thanks, JDH |