syncdb не добавляет приборы в сторонний проект - PullRequest
0 голосов
/ 30 ноября 2011

Я написал довольно простое приложение Django под названием django-locality , которое снимает головную боль при работе со странами и территориями. Он предоставляет много исходных данных для стран и территорий. Я просто выпустил 0.1 до PyPI и установил ее в своем проекте, над которым я сейчас работаю. (Я в основном создал его из-за необходимости, обнаруженной в моем первоначальном проекте.)

Когда я запустил syncdb, он не установил ни одного из моих приборов с locality. В выводе было напечатано «Не найдено ни одного фиксатора», и в базу данных не было добавлено ни одной строки, хотя таблицы были сгенерированы. Есть ли причина, почему Джанго не хватает моих начальных данных? Мои данные живут на locality/fixtures/initial_data.json и отлично устанавливаются, если они запускаются из собственного выделенного проекта. Так как я использую setuptools для управления зависимостями, будет ли иметь значение, если я скачаю его в виде молнии по сравнению с простым макетом каталога?


Изначально кажется, что мой JSON не был включен в яйцо, и именно поэтому syncdb не работал. Теперь я исправил эту проблему, но syncdb все еще не может найти какой-либо из моих приборов. Вы можете скачать яйцо, чтобы увидеть для себя здесь . Я не могу придумать причину, по которой Джанго будет не хватать исходных данных. Вы также можете просмотреть репозиторий на GitHub. Почему Джанго не видит светильники?


Когда я запускаю syncdb -v 2, я вижу, что Джанго видит яйцо и ищет приспособления:

No json fixture 'initial_data' in '/home/rfkrocktk/Desktop/myproject/eggs/django_locality-0.1.1-py2.7.egg/locality/fixtures'.

Возможно ли, что Джанго не умеет читать из яиц?

Ответы [ 2 ]

1 голос
/ 30 ноября 2011

Хорошо, как выясняется, Django не знает, как заглянуть в файлы с zip-яйцами. Как только я распаковал файл egg в каталог с его именем, все заработало.

1 голос
/ 30 ноября 2011

Похоже, ваш setup.py не включает initial_data.json в качестве package_data: http://docs.python.org/distutils/setupscript.html#installing-package-data Это означает, что при установке из PyPi вы не получите файл initial_data.json в своем дистрибутиве.

Лично мне проще использовать исходные коды sdist для приложений Django. В этом случае вы можете перечислить не-Python файлы, которые должны быть включены в MANIFEST: http://docs.python.org/distutils/sourcedist.html

...