I'm having trouble including data files in my setup.py script. My package is setup as follows:
my_package/
setup.py
MANIFEST.in
my_package/
__init__.py
access_data.py
data_files/
my_data_file.csv
I want to include the my_data_file.csv
file when installing so that it can be read by access_data.py
. To do so I used the package_data
keyword in setuptools
:
setup(...,
packages=['my_package'],
package_data={'my_package': ['./my_package/data_files/my_data_file.csv']},
include_package_data=True
)
I also included the file in MANIFEST.in
:
recursive-include my_package/data_files *
setup.py
seems to run fine and doesn't throw any errors. However, when I import the package I get a file not found error because my_data_file.csv
is missing. I have tried referencing other stack overflow questions (particularly this one) but can't figure out what I'm doing wrong. How can I get setup.py to include the necessary data files?
If it is listed in setup.py
's package_data
(correctly) you shouldn't need to include it in MANIFEST.in
(as it will be included automatically)
In your case, the error is with your package_data
line, the paths are relative to the namespace's root
In your case it should be:
package_data={'my_package': ['data_files/my_data_file.csv']},
Also note that the key in package data is the dotted module path (it's not super relevant for this toy case however).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With