使用pip / other installer

时间:2016-01-13 14:46:28

标签: python installation pip

我的目标是制定一份我可以轻松访问潜在雇主/等的程序。为了...展示我的技能......或者其他什么。我不是计算机科学家,我之前从未编写过用于安装的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下载其他文件?或者,是否有更好的方法来加载默认参数?

1 个答案:

答案 0 :(得分:2)

是的,有一种更好的方法,如何使用python包分发数据文件。

首先,阅读有关正确的python包结构的内容。例如,不建议将代码放入__init__文件中。他们只是标记一个目录是一个python包,而且你可以在那里做一些import语句。因此,如果您将SySE类放在(例如)文件syse.py在该目录中,而__init__.pyfrom .syse import SySE可以setuptools,那就更好了。

到数据文件。默认情况下,*.py仅分发README和其他几个特殊文件(LICENCEsetuptools等)。但是,您可以告诉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; } 从任何地方安装它。这很可能是最好的方式,如何分发你的包裹。

这是相当多的工作和阅读,但我很确定你会从中受益。

希望得到这个帮助。