0

我已经编写了一个非常简单的 Django 应用程序,名为django-locality,它可以让与国家和地区的工作无关。它为国家和地区提供了大量的初始数据。我只是 PyPI 的 0.1 版本,并将它安装在我目前正在处理的项目中。(我基本上是根据我在原始项目中发现的需要创建它的。)

但是,当我运行syncdb时,它并没有从locality. 在输出中,它打印了“No fixtures found”,并且没有向数据库添加任何行,尽管生成了表。Django 缺少我的初始数据有什么原因吗?locality/fixtures/initial_data.json如果从它自己的专用项目运行它,我的数据就可以保存并安装得很好。当我使用 setuptools 来管理依赖项时,如果我将其下载为压缩鸡蛋与简单的目录布局会有所不同吗?


最初,我的 JSON 似乎没有包含在鸡蛋中,这就是为什么syncdb不起作用。现在,我已经解决了这个问题,但仍然syncdb无法找到我的任何固定装置。您可以在这里下载彩蛋亲自查看。我想不出 Django 会丢失初始数据的任何原因。您还可以在 GitHub 上查看存储库。为什么 Django 看不到固定装置?


当我运行时syncdb -v 2,我确实看到 Django 看到了鸡蛋并寻找了固定装置:

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

有没有可能 Django 不知道如何读取鸡蛋?

4

2 回答 2

1

看起来您的 setup.py 不包含 initial_data.json 作为 package_data:http : //docs.python.org/distutils/setupscript.html#installing-package-data 这意味着当您从 PyPi 安装时,您不会得到发行版中的 initial_data.json 文件。

sdist我个人发现使用Django 应用程序的源代码分发更容易。在这种情况下,您可以列出需要包含在清单中的非 Python 文件:http: //docs.python.org/distutils/sourcedist.html

于 2011-11-29T21:32:46.650 回答
1

好的,事实证明,Django不知道如何查看压缩的 egg 文件。一旦我将 egg 文件解压缩到具有其名称的目录中,一切就正常了。

于 2011-11-29T23:25:55.153 回答