Python代码的打包与分发指南
1. 许可证选择
在将代码进行打包和分发之前,首先需要选择合适的许可证。常见的BSD许可证有以下几种变体:
- 原始BSD许可证 :允许代码包含在专有商业产品中,无需发布其源代码,这对大型企业有很大吸引力。但其中的广告条款给使用该许可证代码的组织带来了一些麻烦,因为代码转手和维护过程中,涉及开发的每个组织都必须在广告材料中被提及。
- 新BSD许可证 :为解决广告条款的问题而产生,去除了广告条款,保留了原始许可证的其他要求。这使得BSD许可代码的管理变更对使用它的组织影响很小,大大拓宽了其吸引力。
- 简化BSD许可证 :进一步简化,甚至去除了非背书条款,只要求包含许可证文本及其免责声明。为避免不实背书,此版本的免责声明中增加了一句话,明确表明双方观点相互独立。
此外,还有其他许多许可证可供选择。开源倡议组织维护了一份经审查并批准的开源许可证列表,自由软件基金会也有自己认可的自由软件许可证列表。需要注意的是,自由软件和开源软件的区别主要体现在哲学层面,但在实际应用中也有一些影响。简而言之,自由软件保障用户使用软件的自由,而开源则侧重于软件开发模式。并非所有许可证都同时适用于这两种用途,因此你需要决定哪个对你更重要。
2. 打包过程
将一堆文件单独分发并不容易,因此需要将它们打包。这里的打包与标准Python包的概念不同。传统上,Python包是一个包含 __init__.py
文件的目录,可作为该目录中模块的命名空间。为了分发,一个包还应包括文档、测试