Установить статические вложенные каталоги в префикс (или хотя бы включить в пакет setuptools)
Я пытаюсь сделать setup.py
установить каталог в /usr/share
(или в другом префиксе, или, по крайней мере, пусть мой скрипт скопирует его из файла EGG).
Структура каталогов моего проекта выглядит примерно так:
- setup.py
- MANIFEST.in
- myproj
- __init__.py
- sompekg
- __init__.py
- data
- dirA
- dirB
- somefile
- somefile
Я попытался добавить "данные" в MANIFEST.in:
recursive-include data *
recursive-include themer *
или в setup.py
:
include_package_data=True,
но поскольку это вложенная структура каталогов и там нет файлов python, она не будет их включать. На данный момент каталог "data" включен в EGG, но ни один из дочерних каталогов не является.
1 ответ
Решение
Хорошо, я закончил писать свой собственный install
замена, которая вызывает регулярный setuptools.commands.install
и после этого копирует мой файл. Вот соответствующие части моего setup.py
:
from setuptools.command.install import install
class new_install(install):
def run(self):
install.run(self) # invoke original install
self.mkpath('/usr/share/themer')
self.copy_tree('data/default', '/usr/share/themer/default')
self.mkpath('/usr/share/fish/completions')
self.copy_file('data/fish/themer.fish', '/usr/share/fish/completions/')
setup(
#... whatever else you got here
cmdclass=dict(install=new_install)
)