views:

47

answers:

1

I am writing a python extension module that needs to link with a third-party DLL. How can I copy this DLL to the site-packages directory using distutils (i.e. in my setup.py file)?

+1  A: 

Put your DLL in the package_data argument of your setup() (see the Installing Package Data section of the distutils documentation for details).

If you need to put the DLL outside of the package directory , you can use the data_files option. For example to put it in the site-packages directory:

import distutils.sysconfig

setup(
    # [...]
    data_files = [(distutils.sysconfig.get_python_lib(), ["/path/to/the/DLL"])],
)
Luper Rouch
@Luper, thanks. I want the DLL to get copied to the root level of site-packages, not into a package-specific subdirectory. Is there a way to do that using package_data?
Jason Sundram
The `data_files` option lets you put files anywhere you like, see the section 2.7 of the documentation I linked.
Luper Rouch