14

我可以在我们的setup.py项目配置文件中添加什么来告诉开发人员该项目是私有/商业应用程序/库。

目前我设置:

setup(
    name='MyProject',
    version='0.1.0',
    license='(c) My Company',
    ...
)

有什么最佳做法吗?

笔记:

如今,大多数项目都是开源的,并坚持许可证模型。但是,当您在该行业工作时,软件是私有的。我的公司与可能不知道软件可以是私有的事实的离岸公司合作。setup.py因此,我想通过在文件中指定这一点来引起他们的注意。这就是为什么我正在寻找最佳实践。

结论/解决方案

对于私人/专有应用程序,我将遵循rth 的建议

  • 将许可属性设置为“专有”,
  • 添加分类器“许可证 :: 其他/专有许可证”,
  • 也许添加一个LICENSE文件。

模板将是这样的:

setup(
    name='MyProject',
    version='0.1.0',
    license="Proprietary",
    classifiers=[
        'License :: Other/Proprietary License',
        ...
    ],
    ...
)

另一种方法是设置“非开源”,就像在cookiecutter-pypackage模板中定义的那样。

4

2 回答 2

9

从技术上讲,许可开源软件和专有软件之间没有根本区别。

在这两种情况下,您都应该包含一个LICENSE文件,指定您的软件可以做什么和不能做什么(请参阅这个相关的 SO 问题)。还建议在项目中的每个代码文件中添加一个简短的版权/许可标头(以防它们被复制到原始包文件夹之外)。

可以在 中提及许可证类型setup.py,但该字段主要用于显示上传到PyPi的 Python 包的许可证。由于您的代码不是开源的(并且不会上传到 PyPi),因此这与您的情况不太相关。

于 2017-05-21T15:18:33.013 回答
0

如果您担心人们会错误地将您的包上传到 pypi,也许其中一些技巧会有所帮助如何禁用将包上传到 PyPi 除非 --public 被传递给上传命令

于 2017-05-22T21:39:14.533 回答