分发 Python 库(单个文件)

Posted

技术标签:

【中文标题】分发 Python 库(单个文件)【英文标题】:Distributing a Python library (single file) 【发布时间】:2011-02-24 08:36:39 【问题描述】:

对于我的项目,我将使用 argparse 库。我的问题是,我如何将它与我的项目一起分发。我之所以这么问,是因为涉及到技术性和合法性。

我只是:

    将 argparse.py 文件与 我的项目。也就是说,在我的项目的 tar 文件中。 为我创建一个包 发行版? 告诉用户自己安装?

【问题讨论】:

Apache 许可证 2.0 我不知道该许可证需要什么。 【参考方案1】:

您的目标 Python 版本是什么? argparse 似乎包含在 2.7 版中。

如果你正在构建一个依赖最少的小型库,我会考虑删除对外部模块的依赖,只使用标准 Python 库提供的工具。您可以使用sys.argv 访问命令行参数并自己解析它们,这通常并不难。您的用户一定会喜欢不必为了使用您的代码而安装另一个第三方模块。

【讨论】:

实际上 argparse 提供了许多可以让我的工作更轻松的功能。安装一个简单的库对最终用户来说真的很重要吗?作为开发新手,我不知道这种情绪。但至少我不会介意。 :) 我的目标是 Python 2.6。 @Alfred:对于它的价值,它通常对我很重要。 zero 依赖和 one 依赖之间的区别非常大。对于我自己的 Python 代码,我总是尽可能地尽量减少依赖关系(我想到的一个例外是 dnspython for pydkim)。 除此之外,我认为它也会对性能有所增加吗?我的意思是降低它? @Alfred:我不确定你对性能有什么顾虑。命令行参数解析几乎从来都不是代码中对性能至关重要的部分。 好的 :) 我会决定的。谢谢您的帮助。美好的一天!【参考方案2】:

最好让用户安装它,以便系统上只存在一个副本,以便在出现任何问题时对其进行更新,但如果您遵守,将其包含在您的项目中是一个可行的选择许可证中指定的所有要求。

尝试从公共位置导入它,如果失败则使用包含的模块。

【讨论】:

【参考方案3】:

你可以接受伊格纳西奥的建议。

但是... 值得一提的是,Python 中内置了另一个用于参数解析的库,它非常强大。你试过optparse吗?它属于基础 Python 发行版,并且已经存在了一段时间......

祝你好运!

【讨论】:

以上是关于分发 Python 库(单个文件)的主要内容,如果未能解决你的问题,请参考以下文章

从 Python 项目创建单个可执行文件

日志服务Python消费组实战:实时分发数据

在模块(分发?)级别强制执行 API 边界

第 8 章: 模块, 包与分发---Word

C库是否与文本头文件一起分发了二进制文件?

强制 CloudFront 分发/文件更新