Python 需求与 PyPi 冲突

Jon*_*Jon 6 python pip pypi setup.py u2

我有一个项目需要一些 DevOps TLC,所以我终于构建了我的安装脚本。这最终将是一个可以通过 pip 在本地安装的包,但可能不会在 PyPI 中结束。

它依赖于一个名为u2py. 正是这个包,为 U2 数据库操作创建的,而不是这个包,为了……别的东西。我想要的只有第 3 方供应商 (Rocket) 才安装,我不想要的是 PyPI。

在这种情况下,我的包的预期行为应该是什么?我将在我的自述文件中包含一个关于此的简介,但这是否足够?

我曾想过抛出异常来确定何时存在错误的包,但这让我觉得很奇怪。似乎最pythonic的事情是不要将它添加到我的安装脚本中,并盲目地假设import u2py我可以使用的模块的结果。如果它像鸭子一样嘎嘎叫,像鸭子一样解析DynArrays,像鸭子一样call()s SUBROUTINE,那么它就是一只鸭子,对吧?否则,如果出现错误,用户只会去实际阅读文档。

我看过一个classifiers,但不确定它们是否适用于此。

Dus*_*ram 2

理想情况下,有一种方法可以在安装时(在 中setup.py)检测软件包是否安装到“u2 环境”中,如果是这种情况,安装可能会失败(带有相应的错误消息)。

使用此解决方案,您将无法提供内置发行版(轮子),因为它们不会setup.py在安装时执行文件,但只需发布源发行版就可以了。