我正在开发一个新的Python包,它依赖于许多相当大的(每个> 20Mb)数据文件。具体来说,库期望数据文件在运行时位于data/
目录中。
目前,我将它们作为分发包的一部分放在“data”目录中,并将我的setup.py脚本配置为通过python setup.py install
在用户的系统上安装这些文件。这暂时适用,但似乎它会阻止我将分发上传到PyPI,因为tarball可能会超过
几百Mb。
作为替代方案,我想“托管”远程站点上的文件,以便对PyPI友好,并自动检索和安装文件。这可能使用现有的Python分发技术吗?如果是这样,你能描述一下如何做或提供一个例子吗?如果不可能,那么最好的做法是什么呢?
您可以提供的任何见解都是最受欢迎的。
答案 0 :(得分:2)
NLTK在语料库数据分布方面也存在类似情况。在我的linux发行版中,数据是在一个单独的包中,因此我通过在Windows上安装setuptools进行了一些调查。
如果您尝试使用语料库而您没有,则nltk会要求您运行下载程序功能(nltk.download()
)。在内部,它使用LazyCorpusLoader作为需要数据的语料库对象的替代,然后在需要时加载数据。
与sys.path
类似,它会预先搜索多个路径,以便用户可以将其放在任何他们想要的位置。您还可以修改nltk.data.path
以添加您自己的数据位置。