Создание deb или rpm с помощью setuptools - data_files
У меня есть проект Python 3.
MKC
├── latex
│ ├── macros.tex
│ └── main.tex
├── mkc
│ ├── cache.py
│ ├── __init__.py
│ └── __main__.py
├── README.md
├── setup.py
└── stdeb.cfg
В процессе установки я хотел бы переместить мои латексные файлы в известный каталог, скажем /usr/share/mkc/latex
, поэтому я сказал setuptools
включить файлы данных
data_files=[("/usr/share/mkc/latex",
["latex/macros.tex", "latex/main.tex"])],
Теперь, когда я запускаю
./setup.py bdist --formats=rpm
или
./setup.py --command-packages=stdeb.command bdist_deb
Я получаю следующую ошибку:
error: can't copy 'latex/macros.tex': doesn't exist or not a regular file
Запуск только ./setup.py bdist
отлично работает, поэтому проблема должна заключаться в создании пакета.
Ответы
Ответ 1
При создании файла deb (я думаю, что то же самое количество для файла rpm), ./setup.py --command-packages=stdeb.command bdist_deb
сначала создает исходный дистрибутив и использует этот архив для дальнейшей обработки. Но ваши файлы LaTeX там не включены, поэтому они не найдены.
Вам нужно добавить их в исходный пакет. Это может быть достигнуто путем добавления MANIFEST.in с содержимым:
recursive-include latex *.tex
distutils из версии 3.1 на будет автоматически включать data_files
в исходный дистрибутив, а setuptools, по-видимому, работает совсем по-другому.