[Distutils] Including DLLs in binary distributions
Jean-Paul Calderone
exarkun at divmod.com
Tue Jul 21 17:09:50 CEST 2009
On Tue, 21 Jul 2009 09:47:46 -0400, Jean-Paul Calderone <exarkun at divmod.com> wrote:
>On Tue, 21 Jul 2009 09:02:16 -0400, Jean-Paul Calderone <exarkun at divmod.com>
>wrote:
>>On Mon, 20 Jul 2009 20:22:41 -0400, "P.J. Eby" <pje at telecommunity.com>
>>[snip]
>>>
>>>Use package_data instead; it should do the right thing with both distutils
>>>and setuptools. (It is available in the distutils as of Python 2.4; for
>>>2.3 you'd have to use setuptools.)
>>
>>Can package_data include files which aren't in the source tree? I naively
>>tried
>> package_data = {
>> 'OpenSSL': ['C:/OpenSSL/ssleay32.dll',
>> 'C:/OpenSSL/libeay32.dll']}
>
>Hmm. Actually, I then tried various other spellings, using only relative
>paths, and was unable to get these DLLs into the egg using any of them. I
>wonder if I am missing something fundamental about how package_data is
>interpreted.
>
>A couple other values I tried:
>
> package_data = {'': ['ssleay32.dll', 'libeay32.dll']}
>
> package_data = {'OpenSSL': ['ssleay32.dll', 'libeay32.dll']}
>
>Any tips?
>
I tracked down the problem to a requirement I wasn't aware of. If no
value is passed for the "packages" argument to setup, it seems that the
package_data value is ignored. Once I added `packages = ["OpenSSL"]´,
the former of the above package_data definitions worked.
I'm still curious about whether it's possible to specify absolute paths
rather than relative paths. For the moment, I have my setup.py copying
the files to a location where they'll be picked up, but it'd be great if
I could drop that.
Thanks,
Jean-Paul
More information about the Distutils-SIG
mailing list