syncdb не добавляет приборы в сторонний проект
Я написал довольно простое приложение 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 ответа
Хорошо, как выясняется, Джанго не знает, как заглядывать в файлы с молнией. Как только я распаковал файл egg в каталог с его именем, все заработало.
Похоже, ваш setup.py не содержит initial_data.json в виде package_data: http://docs.python.org/distutils/setupscript.html. Это означает, что при установке из PyPi вы не получите файл initial_data.json в вашем дистрибутиве.
Мне лично проще использовать исходные дистрибутивы sdist
для приложений Django. В этом случае вы можете перечислить не-Python файлы, которые должны быть включены в MANIFEST: http://docs.python.org/distutils/sourcedist.html