я нашел несколько источников (https://docs.python.org/3/distutils/sourcedist.html#specifying-the-files-to-distribute, http://blog.ionelmc.ro/2014/05/25/python-packaging/, http://blog.ionelmc.ro/2014/06/25/python-packaging-pitfalls/), которые свидетельствуют о том, что способ распространения файлов данные в пакете Python является использование Setuptools include_package_data
опции игрового и MANIFEST.in
. Файлы в моем пакете, таким образом выглядеть,Где setup.py устанавливает файлы данных внутри virtualenv?
setup.py
setup( # ... include_package_data = True, # ...
с остальной частью файла (надеюсь, не имеет значения) Опущенные.
MANIFEST.IN
graft testdata include ChangeLog include README.rst include COPYING include COPYING.LESSER include tox.ini
Когда я бегу setup.py install
или использовать пипс в virtualenv, я в конечном итоге с источником Python сами файлы, но без testdata/
, где я могу найти его. Я думаю, что это была ошибка в моей упаковке, за исключением того, что когда я хватаю еще один пакет с похожим макетом, я тоже не могу найти файлы данных. Если я клонирую репозиторий для примера пакета https://github.com/ionelmc/python-nameless и установлю его с помощью setup.py install
, пакет устанавливается в каталог lib/python3.4/site-packages/nameless-0.1.0-py3.4.egg/nameless/
. Однако я не могу найти ни одного из файлов данных или тестов в любом месте виртуального сервера. Где они должны были закончиться? Как это должно работать?
Моей мотивацией для запроса этого вопроса является то, что другой участник проекта хочет, чтобы тесты, требующие файлов данных, выполнялись с помощью установки pip. Это правильный подход в первую очередь?
Используйте 'pkg_resources' чтобы открыть файлы данных. См. Мой [ответ] (http://stackoverflow.com/a/34788912/3626079) для аналогичного вопроса. – ziky