使用 setuptools (pip) 时如何打印警告和错误

2024-06-29

我正在使用 setuptools 来打包代码,以便可以使用以下命令轻松安装它

cd project_name && pip install .

在设置过程中,我想警告用户有关预先存在的配置文件的信息,并在系统上打印一些安装后说明。例如

/etc/project_name/project.conf exists. Not copying default config file.

我尝试过使用print and logging.warning()但使用 pip 安装时仍然不会出现警告。我有一种感觉,我错过了一些明显的东西。

我们正在尝试在 Redhat 系列 >= el6 和 Ubuntu >= 14.04LTS 上支持 3.0 > python >= 2.6


如果您查看 pip 源代码,在负责运行设置脚本的函数中,call_subprocess (来源在这里 https://github.com/pypa/pip/blob/main/src/pip/_internal/utils/subprocess.py#L71), 它说:

def call_subprocess(cmd, show_stdout=False, cwd=None, ...
    """
    Args:
      show_stdout: if true, use INFO to log the subprocess's stderr and
        stdout streams.  Otherwise, use DEBUG.  Defaults to False.
      ...
    """
    ...
    # Most places in pip use show_stdout=False. What this means is--
    #
    # - We connect the child's output (combined stderr and stdout) to a
    #   single pipe, which we read.
    # - We log this output to stderr at DEBUG level as it is received.
    # - If DEBUG logging isn't enabled (e.g. if --verbose logging wasn't
    #   requested), then we show a spinner so the user can still see the
    #   subprocess is in progress.
    # - If the subprocess exits with an error, we log the output to stderr
    #   at ERROR level if it hasn't already been displayed to the console
    #   (e.g. if --verbose logging wasn't enabled).  This way we don't log
    #   the output to the console twice.
    #
    # If show_stdout=True, then the above is still done, but with DEBUG
    # replaced by INFO.

简而言之,只有在以下情况下您才能看到输出:

  • 您的设置因错误而退出,或者
  • 用户调用 pip-v,详细标志
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 setuptools (pip) 时如何打印警告和错误 的相关文章

随机推荐

  • Webpack、Sass - 超出最大调用堆栈大小

    我正在为我的 JS 应用程序使用 Webpack 对于样式 我使用 Sass 我的应用程序非常大 所以我使用了很多 mixins 和 includes 在过去的几天里 虽然应用程序的 SASS 数据增长了一些 我多次遇到相同的以下错误 未捕
  • 搜索/替换 xml 内容

    我已经成功地使用 xml etree ElementTree 解析 xml 搜索内容 然后将其写入不同的 xml 然而 我只是处理单个标签内的文本 import os sys glob xml etree ElementTree as ET
  • UniversalLink 不适用于 iOS 14 设备,但在模拟器上运行良好

    以下解决方案可以在模拟器上支持universalLink 我有一个支持 UniversalLink 的应用程序 用户单击网站中支持的链接 将导航到应用程序中的功能 但它无法在 iOS 14 beta 4 上运行 它不是打开应用程序 而是打开
  • 如何创建像Foursquare兴趣选择屏幕一样的gridview?

    我正在创建一个应用程序 要求用户选择多个兴趣 我正在尝试创建一个类似于 Foursquare 兴趣选择的屏幕类似于标签云其中可以选择多个按钮来代表用户的兴趣 我尝试创建一个 gridview 但无法实现按钮换行到下一行的效果 有没有办法通过
  • 如何在线性布局上制作波纹效果,而不覆盖其子级的背景颜色?

    I have a LinearLayout that looks like this 我希望每一行都是可点击的 这LinearLayout一行的代码如下所示
  • Primefaces 数据表(日期列) 按日历过滤

    I am using PF 5 1 I want to filter Primefaces datatable date column by calendar set primefaces calendar here Is it possi
  • 当为 false 时,Handlebars 不会渲染布尔变量

    Handlebars js 有一些奇怪的行为 它将 true 值渲染为字符串 true 将 false 值渲染为 var booleanTestTrue true var booleanTestFalse false 模板 True boo
  • 在记录活动中使用 readConfiguration 方法

    为了在小型 Java 桌面应用程序中使用日志记录 我试图深入了解一些方法的操作 我使用一个非常愚蠢的小Java程序来测试它们 特别是 在测试 LogManager readConfiguration 方法的行为时 我发现了一些奇怪的事情 在
  • 将文件的 hexdump 或 RAW 数据提取为文本

    我想知道是否有办法将文件的 hexdump 或原始数据输出到 txt 文件 例如 我有一个文件 data jpg 文件类型无关 如何将 HEXdump 14ed 5602 等 导出到文件 output txt 另外我如何指定输出的格式 例如
  • Magento 管理员登录不起作用

    我将我的网站从一个托管提供商迁移到另一托管提供商 当我在更改名称服务器之前更改服务器上的 A 记录时 一切正常 名称服务器更改后 问题开始出现 首先 没有任何链接可用 在询问提供商后 他们说 htaccess 是空白的 他们已经恢复了默认配
  • Ruby 相当于 Python 的多处理模块是什么?

    为了在 Ruby 或 Python 中获得真正的并发性 我需要创建新的进程 Python 使用以下命令使这变得非常简单multiprocessing模块 它抽象了所有 fork wait 的好处 让我专注于我的代码 Ruby 有类似的东西吗
  • 在 ruby​​ on Rails 中运行测试时具有默认端口

    我正在尝试运行我的测试rake spec我使用 rspec capybara 和 selenium 作为网络驱动程序 问题是 当我尝试运行规范时 它每次都会在不同的端口中启动测试环境 我不希望这种情况发生 因为它会扰乱我的 Facebook
  • Eslint 不忽略 node_modules 文件夹

    不知何故更新后Babel from 6 to 7 my eslint开始发出这样的警告node modules 所以 根据我的理解node modules文件夹不会被忽略 这就是问题出现的原因 所以 通读eslint docs https
  • iOS Facebook SDK 通过图搜索来搜索用户

    我是图形搜索新手 我想搜索具有电子邮件地址的用户 那可能吗 现在 我只知道如何使用他们的名字进行搜索 如下所示 https graph facebook com search q chandler de angelis type user
  • jQuery:append() 与appendTo()

    我正在测试 jQuery append vs appendTo 使用以下代码的方法 div gt id id text this text appendTo div type item id div type item id append
  • MIPS 如何分支到32位地址?

    我正在尝试分支到一个地址 bne t0 0 0x7813a21c 然而 这是不正确的 因为 bne 只分配 16 位给立即数 如何分支到直接 32 位地址 有没有办法从寄存器中的值分支 你必须使用JR跳转到寄存器中存储的地址
  • MVC 4 - 在局部视图中使用不同的模型

    请忍受我的noobness 我对 MVC 模式非常陌生 我正在尝试做什么 我正在为我的网站上的注册用户构建个人资料信息页面 该页面将列出有关用户的数据 例如出生日期 电话号码 订阅状态等 您明白了 我还想要一个表格让用户更改密码 电子邮件地
  • 当订阅者离线且 QOS=2 时,mosquitto 代理发布消息存储 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我的发布者和订阅者都连接到 mosquitto paho 代理 QOS 2 并通过 clean session false 维护持久会
  • 对依赖列进行 ALTER TABLE

    我正在尝试将主键的列数据类型从 int 更改为tinyint 该列是其他表中的外键 因此 我收到以下错误 消息 5074 级别 16 状态 1 第 1 行 对象 PK User tbl 为 取决于列 appId 消息 5074 第 16 级
  • 使用 setuptools (pip) 时如何打印警告和错误

    我正在使用 setuptools 来打包代码 以便可以使用以下命令轻松安装它 cd project name pip install 在设置过程中 我想警告用户有关预先存在的配置文件的信息 并在系统上打印一些安装后说明 例如 etc pro