Почему я не могу включать эти файлы данных в распределение Python с помощью distutils?

Я пишу setup.py файл для проекта Python так, чтобы я мог распределить его. Цель состоит в том, чтобы в конечном счете создать .egg файл, но я пытаюсь заставить ее работать сначала с distutils и регулярным .zip.

Это - затмение pydev проект, и моя файловая структура - что-то вроде этого:

ProjectName
   src
      somePackage
         module1.py
         module2.py
         ...
   config
      propsFile1.ini
      propsFile2.ini
      propsFile3.ini
   setup.py

Вот мой код setup.py до сих пор:

from distutils.core import setup

setup(name='ProjectName', 
      version='1.0', 
      packages=['somePackage'],
      data_files = [('config', ['..\config\propsFile1.ini', 
                                '..\config\propsFile2.ini', 
                                '..\config\propsFile3.ini'])]
      )

Когда я выполняю это (с sdist как параметр командной строки), .zip файл сгенерирован со всеми файлами Python - но файлы конфигурации не включены. Я думал что этот код:

 data_files = [('config', ['..\config\propsFile1.ini', 
                                    '..\config\propsFile2.ini', 
                                    '..\config\propsFile3.ini'])]

указывает, что те 3 указанных файла конфигурации должны быть скопированы в каталог "конфигурации" в распределении zip. Почему этот код ничего не выполняет? Что я делаю неправильно?

(Я также попытался играть вокруг с путями файлов конфигурации... Но ничто, кажется, не помогает. Python бросил бы ошибку или предупреждение, если бы путь был неправильный / файл не был найден?)

6
задан froadie 3 June 2010 в 16:43
поделиться

3 ответа

Я наконец-то заставил это работать, переместив весь каталог config в папку src. Это должно означать, что у меня неправильные пути... но так как я не смог найти способ резервного копирования каталога ("...\" не имеет значения), я собираюсь пока придерживаться этого решения.

1
ответ дан 17 December 2019 в 00:03
поделиться

Создайте файл MANIFEST.in следующим образом:

include config\*

(EDIT) Дополнительную информацию смотрите здесь: http://docs.python.org/distutils/sourcedist.html#specifying-the-files-to-distribute

6
ответ дан 17 December 2019 в 00:03
поделиться

Я думаю, что вы должны избежать обратных косых черт в именах файлов; например, вместо '.. \config\whatever', напишите '.. \\config\\whatever' или используйте синтаксис необработанной строки: r'.. \config\whatever'.

0
ответ дан 17 December 2019 в 00:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: