setup.py/pypi在安装过程中捕捉错误

2024-09-28 03:15:14 发布

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

我目前正在用python开发一个命令行应用程序,我将把它上传到pypi,供最终用户使用。我正在利用setup.py中的extras功能来支持我的应用程序的两个版本,一个是具有最小依赖性的基本功能版本,另一个功能更丰富,但有大量依赖性(numpy、pandas、networkx、matplotlib等)

简而言之: pip install app # simple, no deps pip install app[all] # all the deps

现在的问题是,我在功能丰富的版本中的一个依赖项具有所谓的“flakey”pypi支持。基本上,除非在整个安装过程发生之前已经预装了它的一个依赖项,否则不能安装它。幸运的是(或者不是),我的应用程序(拉入这个flakey模块)也有需要的flakey模块。让我们参考flakey模块需要预装的模块fixer-module

所以: pip install app[all] # triggers the installation of flakey module

如果没有安装fixer模块,安装将失败,即使它将在flakey模块安装之前安装。基本上必须这样做:

pip install fixer-module pip install app[all]

现在,我要做的是包含一些检查代码,以完成以下任务:

  • 仅在安装app[all]发行版时运行
  • 执行try import fixer-module, except ImportError检查并打印一条解释情况的消息
  • 在安装过程失败之前停止并清理它

我研究这个已经有一段时间了。我找到了一些检查setup.py的输入参数的例子,但没有一个例子能说明如何在最终用户安装过程中处理这些内容。非常感谢您的指点


Tags: 模块installpippy功能版本pypiapp

热门问题