2015-06-17 4 views
12

У меня есть проект Python 3.Создание deb или rpm с помощью setuptools - data_files

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 работает отлично, так что проблема должна быть в создании пакета.

+0

У вас есть хранилище этого онлайн где-то; возможно, на [Github] (https://github.com)? –

+0

https://github.com/pacholik/MKC – pacholik

ответ

11

При создании файла deb (я думаю, что то же самое число для файла rpm) ./setup.py --command-packages=stdeb.command bdist_deb сначала создает исходный дистрибутив и использует этот архив для дальнейшей обработки. Но ваши файлы LaTeX там не включены, поэтому они не найдены.

Необходимо добавить их в исходный пакет. Такое может быть достигнуто путем добавления MANIFEST.in с содержимым:

recursive-include latex *.tex 

distutils с версии 3.1 на будет автоматически включать data_files в распределении источника, в то время как, по-видимому setuptools работает совсем по-другому.

+0

Это работает, и я думаю, что знаю почему. Щедрость ваша! – pacholik

Смежные вопросы