Python包的多种安装配置

2024-05-14 10:12:38 发布

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

我正在创建一个本质上有点模块化的Python包,我想知道处理多个安装配置的最佳方法是什么?在

下面的setup.py是一个简单文档解析器的包:

setup(
    name = 'my_document_parser',
    ...
    entry_points = {
        'my_document_parser.parsers': [
            'markdown = my_document_parser.parsers.misaka:Parser [misaka]',
            'textile = my_document_parser.parsers.textile:Parser [textile]'
        ]
    },
    install_requires = [
        'some_required_package'
    ],
    extras_require = {
        'misaka' = ['misaka'],
        'textile' = ['textile']
    },
    ...
)

我想提供如下内容:

  • 默认安装
    • python setup.py install或{}
    • 安装my_document_parsersome_required_packagemisaka
  • 光秃秃的装置
    • python setup.py install --bare
    • 安装my_document_parsersome_required_package
  • 启用其他依赖项的方法
    • python setup.py install --bare --with-textile
    • 安装my_document_parsersome_required_packagetextile

这是我第一次从开发人员的角度来处理Python包,所以如果我做错事的话,我愿意接受任何人提供的东西。在

谢谢。在


Tags: install方法pyparserpackagemysetuprequired
1条回答
网友
1楼 · 发布于 2024-05-14 10:12:38

默认安装将安装install_requirespackages部分中的所有内容。您将永远不会安装extras_require下的包设置.py脚本;仅当您为此类安装创建一些逻辑时。在

默认情况下,setuptoolsdistutils无法明确地说“使用安装调用的这些部分进行安装”。你需要自己去实现。在

pip总是使用无参数来安装包设置.py但是外部管理的单一版本,告诉setuptools永远不要创建{}文件。在


结论:如果您希望人们使用pip安装您的软件包,请忘记 bare和{}。您所能做的最好的就是完整安装,包括misaka和{}作为依赖项。在

也许您应该阅读The Hitchhiker's Guide To Packaging,特别是Creating a Package部分和{a3}这是一个相当好的,它涵盖了setuptools可以做的一切。在

相关问题 更多 >

    热门问题