我的目标是制定一份我可以轻松访问潜在雇主/等的程序。为了...展示我的技能......或者其他什么。我不是计算机科学家,我之前从未编写过用于安装的python模块,所以我对这方面不熟悉。
我编写了一个机器学习算法,并将参数拟合到我本地的数据中。我想用"默认"分发算法。参数,以便下载器可以使用它"开箱即用"没有训练集的分类。我已经编写了将参数保存到文本文件/从文本文件中加载参数的方法,我已经在我的平台上确认了这些参数。我可以简单地要求用户下载我单独提到的文件,并使用我创建的loadParameters方法手动加载参数,但我想让安装过程尽可能简单。评估我。
我不确定如何打包文本文件,以便它们可以自动加载到我拥有的对象的__init__方法中。
我已将算法和文件放在github here上,并编写了一个setup.py脚本,以便可以使用pip从github下载,如下所示: pip install --upgrade https://github.com/NathanWycoff/SySE/tarball/master 但是,这似乎不会安装包含我需要的数据的文本文件,只包含包含我的代码的__init__.py python文件。
所以我想这个问题归结为:除了__init__.py中的模块之外,我如何强制pip下载其他文件?或者,是否有更好的方法来加载默认参数?
答案 0 :(得分:2)
是的,有一种更好的方法,如何使用python包分发数据文件。
首先,阅读有关正确的python包结构的内容。例如,不建议将代码放入__init__
文件中。他们只是标记一个目录是一个python包,而且你可以在那里做一些import
语句。因此,如果您将SySE
类放在(例如)文件syse.py
在该目录中,而__init__.py
中from .syse import SySE
可以setuptools
,那就更好了。
到数据文件。默认情况下,*.py
仅分发README
和其他几个特殊文件(LICENCE
,setuptools
等)。但是,您可以告诉setup
您希望在程序包中分发其他一些文件。使用package_data
的kwarg MANIFEST.in
,更多关于here的信息。另外,请不要忘记将所有数据文件都包含在pkg_resources
中,更多内容放在here上。
如果您正确执行上述所有操作,则可以使用包pkg_resources
在运行时发现数据文件。 pip install syse
处理所有可能的情况 - 你的软件包可以通过多种方式分发,它可以从pip服务器安装,可以从wheel安装,如egg,...更多关于here。< / p>
最后,如果您的包是公开的,我只建议将其上传到pypi(如果它不公开,您可以运行自己的点子服务器)。在那里注册并上传您的包裹。您只能function ChangeIDToString(strCondition,id)
{
if (strCondition.indexOf("AssignedTo") > -1)
return GetUserName(id)
else if (strCondition.indexOf("ClaimStatusId") > -1)
return GetClaimStatus(id)
else if (strCondition.indexOf("ClaimTypeId") > -1)
return GetClaimType(id);
else
return id;
}
从任何地方安装它。这很可能是最好的方式,如何分发你的包裹。
这是相当多的工作和阅读,但我很确定你会从中受益。
希望得到这个帮助。