I have written a Python extension module in C++.
I plan to distribute the module with setuptools.
There will be binary distributions for 32- and 64-bit Windows (built with setup.py bdist_egg
) and a source distribution for UNIX-like platforms (built with setup.py sdist
).
I plan to license the module under the BSD license. In my source tree, the file LICENSE.txt is in the top folder along with setup.py. How should I include it in the installation package?
I tried the following setup.py script:
from setuptools import setup, Extension
from glob import glob
setup(
name = 'Foo',
version = '0.1.0',
ext_modules = [Extension('Foo', glob('Source/*.cpp'))],
package_data = {'': ['LICENSE.txt']}
)
It did not work, the license file is not included in the installation package. Maybe because the setup.py file does not define any packages, only a single extension module.
How do I fix this?
Write a setup.cfg
file and in there specify:
[metadata]
license_files = LICENSE.txt
For this to work it seems like wheel is required to be installed. That is:
pip install wheel
If you have wheel
already installed and it doesn't work, try to update it:
pip install --upgrade wheel
Then when installing the package via pip install <path>
the LICENSE file gets included.