setup.py -- 私人/商业项目的配置

setup.py -- configuration for private / commercial projects

我可以在我们的 setup.py 项目配置文件中添加什么来告诉开发人员该项目是 private/commercial application/library.

目前我设置:

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

有什么最佳做法吗?

注:

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

Conclusion/Solution

对于private/proprietary的申请,我会按照:

模板将是这样的:

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

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

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

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

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

如果你担心别人会错误地将你的包上传到 pypi,也许这些技巧中的一些会有所帮助