Python 需求与 PyPi 冲突

标签 python pip setup.py pypi u2

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

它依赖于一个名为 u2py 的模块。 . It is this package ,为 U2 数据库操作创建,not this package ,为了……别的东西。我想要的只是由第 3 方供应商(Rocket)安装的,我不想要的在 PyPI 中。

在这种情况下,我的包裹的预期行为应该是什么? 我将在我的自述文档中包含有关此内容的简介,但这是否足够?

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

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

最佳答案

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

使用此解决方案,您将无法提供内置发行版(轮子),因为它们不执行 setup.py文件在安装时,但只是发布源分布应该没问题。

关于Python 需求与 PyPi 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60287455/

相关文章:

python - 列操作 R

python - 为什么 numpy 没有出现在我的 virtualenv 中的 pip3 列表中,即使我在两秒前通过 pip3 install numpy 安装了它?

python - 在setup.py中为install_requires做一个 "either... or... "区分

setuptools - 获取setup.cfg包的版本

python - 在 setup.py 中包含直接依赖下载链接

python - 将日期时间转换为字符串和格式

python - sklearn Ridge 和 sample_weight 给出内存错误

javascript - 在@tensorflow安装文件夹中找不到"tfjs_binding.node"

python - 在没有root权限的情况下安装python包

python - 无法安装Python argon2_cffi