设置.py私人/商业项目配置

2024-04-25 06:57:02 发布

您现在位置:Python中文网/ 问答频道 /正文

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

当前我设置:

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

有什么最佳实践吗?在

现在,大多数项目都是开源的,并且坚持许可证模式。然而,当你从事这个行业时,软件是私有的。我的公司与离岸公司合作,这些公司可能不知道软件可以是私有的。所以,我想通过在setup.py文件中指定这一点来引起他们的注意。这就是为什么我要寻找这方面的最佳实践。在

结论/解决方案

对于私有/专有应用程序,我将遵循rth's recommendation

  • 将license属性设置为“property”
  • 添加分类器“License::Other/property License”
  • 或者添加一个LICENSE文件。在

模板应该是这样的:

^{pr2}$

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


Tags: 文件项目namepy模板应用程序软件开发人员
3条回答

为什么不签出大项目的setup.py文件@Github?在

Example

from setuptools import setup, find_packages
from opensnitch.version import VERSION
import sys


if sys.version_info[0] != 3:
    raise RuntimeError('Unsupported python version "{0}"'.format(
      sys.version_info[0]))

try:
    with open('README.md') as f:
        long_description = f.read()
except:
    long_description = 'OpenSnitch - An application level firewall for GNU/Linux.'  # noqa


setup( name                 = 'opensnitch',
       version              = VERSION,
       description          = long_description,
       long_description     = long_description,
       author               = 'Simone Margaritelli',
       author_email         = 'evilsocket@gmail.com',
       url                  = 'http://www.github.com/evilsocket/opensnitch',
       packages             = find_packages(),
       scripts              = [ 'bin/opensnitch' ],
       package_data         = {'': ['*.ui']},
       license              = 'GPL',
       zip_safe             = False,
       install_requires     = [ 'scapy-python3', 'dpkt', 'NetfilterQueue', 'psutil' , 'pyinotify']
)

Example

^{pr2}$

找到here

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

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

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

如果您担心人们会错误地将您的包上载到pypi,那么这些技巧可能会帮助您How to disable uploading a package to PyPi unless public is passed to the upload command

相关问题 更多 >