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的申请,我会按照:
- 将许可属性设置为“专有”,
- 添加分类器“License :: Other/Proprietary License”,
- 并可能添加一个
LICENSE
文件。
模板将是这样的:
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,也许这些技巧中的一些会有所帮助
我可以在我们的 setup.py
项目配置文件中添加什么来告诉开发人员该项目是 private/commercial application/library.
目前我设置:
setup(
name='MyProject',
version='0.1.0',
license='(c) My Company',
...
)
有什么最佳做法吗?
注:
如今,大多数项目都是开源的,并且遵循许可模式。但是,当您从事该行业时,软件是私有的。我的公司与离岸公司合作,这些公司可能不知道软件可以是私有的。因此,我想通过在 setup.py
文件中指定这一点来引起他们的注意。这就是我寻找最佳实践的原因。
Conclusion/Solution
对于private/proprietary的申请,我会按照
- 将许可属性设置为“专有”,
- 添加分类器“License :: Other/Proprietary License”,
- 并可能添加一个
LICENSE
文件。
模板将是这样的:
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,也许这些技巧中的一些会有所帮助