4

我正在开发一个新的 Python 包,它依赖于许多相当大的(每个 > 20Mb)数据文件。具体来说,库希望数据文件data/在运行时位于目录中。

目前,我将它们作为分发包的一部分放在“数据”目录中,并将我的 setup.py 脚本配置为通过python setup.py install. 这目前有效,但似乎它会阻止我将分发上传到 PyPI,因为 tarball 可能会超过几百 Mb。

作为替代方案,我想将文件“托管”在远程站点上,以便对 PyPI 友好,并自动检索和安装文件。这可能使用现有的 Python 分发技术吗?如果是这样,您能否描述如何做到这一点或提供一个例子?如果不可能,那么实现这一目标的最佳做法是什么?

您可以提供的任何见解都将受到欢迎。

4

1 回答 1

3

NLTK在他们的语料库数据分布上也有类似的情况。在我的 linux 发行版中,数据位于单独的包中,因此我通过在 Windows 上使用 setuptools 安装它进行了一些调查。

如果您尝试使用语料库但没有它,nltk 会要求您运行下载器功能 ( nltk.download())。在内部,它使用LazyCorpusLoader作为需要数据的语料库对象的替代,然后在需要时加载数据。

就像sys.path它预先搜索了许多路径,以便用户可以将其放在任何他们想要的地方。您还可以修改nltk.data.path以添加您自己的数据位置。

于 2012-03-14T17:00:02.567 回答