【问题标题】:Can I specify conflicting packages with Python's setuptools?我可以使用 Python 的 setuptools 指定冲突的包吗?
【发布时间】:2018-07-21 07:14:07
【问题描述】:

我为pytest 编写了一个插件,它添加了命令行选项。另一个插件添加了同名的命令行选项。因此,它们不应同时安装。

我可以用我的setup.py 脚本配置什么来阻止用户这样做吗?

【问题讨论】:

  • 不,没有这样的选项。这是有道理的,因为会有很多晦涩的方法来破坏包依赖树。为什么不让用户安装你的插件,而是检查插件代码中安装的其他插件?然后,您可以发出警告,将用户指向该选项不可用。 if config.pluginmanager.get_plugin('otherplugin') is not None: ...

标签: python setuptools


【解决方案1】:

setup 没有方便的选项来指定冲突(更重要的是,setuptools 似乎无法可靠地检测冲突),但您可以使用对已安装包的访问(基于 pkg_resources 的解决方案) 描述in this answersetup.py 脚本中编写您自己的代码,该脚本将检测和处理冲突。这并不完美,但可以作为一种解决方法。

【讨论】:

    猜你喜欢
    • 2012-06-29
    • 1970-01-01
    • 2015-10-02
    • 2011-11-25
    • 2019-09-15
    • 1970-01-01
    • 2013-03-25
    • 2016-03-17
    • 2023-03-20
    相关资源
    最近更新 更多