Gradio(1) - 常用基础组件展示

工作中有用到Gradio来构建简单的工具Web,这里放个常用的基础组件demo。
更多的还是需要参照官方文档 https://www.gradio.app/docs

图例

在这里插入图片描述
在这里插入图片描述

代码

import random
import datetime
import gradio as gr

click_button_text = ""
global_show_text = []


def click_button(text):
    global click_button_text
    click_button_text = text

    return text


def change_select(text):
    return str(text)


def flush_show_click_button_text_value():
    def inner():
        global click_button_text
        return click_button_text

    return inner()


def auto_show_text():
    def inner():
        global global_show_text
        global_show_text.append(f'{datetime.datetime.now().strftime("%m-%d %H:%M:%S")} 随机生成: {random.random()}')
        show_text = "\n".join(global_show_text)
        return show_text

    return inner


def identity(x, state):
    state += 1
    return x, state, state


def message_error():
    raise gr.Error("发生错误!")


def message_info():
    raise gr.Info("信息提示")


def message_warning():
    raise gr.Warning("警告!")


with gr.Blocks() as tab_1:
    demo_label_1 = gr.Label("基本组件展示1")

    # 按钮
    with gr.Row() as row_1:
        button_1 = gr.Button("按钮1")
        button_2 = gr.Button("按钮2", size='lg')
        button_3 = gr.Button("按钮3", link='subPath')
        # every 是更新的频率,数值越低频率越快
        show_click_button_text_1 = gr.Label(label="最近一次点击-自动更新", value=flush_show_click_button_text_value, every=0.3)
        show_click_button_text_2 = gr.Label(label="最近一次点击-事件返回", value="")

    # 绑定函数
    button_1.click(click_button, inputs=[button_1], outputs=[show_click_button_text_2])
    button_2.click(click_button, inputs=[button_2], outputs=[show_click_button_text_2])
    button_3.click(click_button, inputs=[button_3], outputs=[show_click_button_text_2])

    # 选择
    with gr.Column() as column_1:
        with gr.Row() as col_sub_row1:
            select_1 = gr.Dropdown(
                ["cat", "dog", "bird"], label="下拉框", info="Will add more animals later!"
            )
            show_select_1 = gr.Label(label="下拉框选择", value="")

        with gr.Row() as col_sub_row2:
            select_2 = gr.CheckboxGroup(["China", "USA", "Japan", "Pakistan"], value=["China"], label="多选框", info="Where are they from?")
            show_select_2 = gr.Label(label="多选框选择", value="")

        with gr.Row() as col_sub_row3:
            select_3 = gr.Radio(["park", "zoo", "road"], label="单选框", info="Where did they go?")
            show_select_3 = gr.Label(label="单选框选择", value="")

        with gr.Row() as col_sub_row4:
            select_4 = gr.Checkbox(label="Morning", info="Did they do it in the morning?")
            show_select_4 = gr.Label(label="CheckBox选择", value="")

    select_1.change(change_select, inputs=[select_1], outputs=[show_select_1])
    select_2.change(change_select, inputs=[select_2], outputs=[show_select_2])
    select_3.change(change_select, inputs=[select_3], outputs=[show_select_3])
    select_4.change(change_select, inputs=[select_4], outputs=[show_select_4])


with gr.Blocks() as tab_2:
    demo_label_2 = gr.Label("基本组件展示2")
    with gr.Row() as tab_2_row_1:
        btn_err = gr.Button(value="错误提示")
        btn_info = gr.Button(value="信息提示")
        btn_warn = gr.Button(value="警告提示")

    btn_err.click(message_error)
    btn_info.click(message_info)
    btn_warn.click(message_warning)

    with gr.Row() as tab_2_row_2:
        fre_slider = gr.Slider(label='滑块', value=10, minimum=0, maximum=100, step=0.1)
        fre_state = gr.State(value=0)
        slider_number = gr.Number(label="滑块值")
        slider_number2 = gr.Number(label="滑块操作次数")
    fre_slider.release(identity, inputs=[fre_slider, fre_state], outputs=[slider_number, fre_state, slider_number2])

    with gr.Row() as tab_2_row_3:
        show_text1 = gr.Text(label="文本框", info="info", value="")
        show_text2 = gr.Textbox(label="自动渲染", info="auto show", value=auto_show_text(), every=1, max_lines=10)


if __name__ == "__main__":
    demo = gr.TabbedInterface([tab_1, tab_2], ["常用组件展示1", "常用组件展示2"])
    demo.launch(server_name="0.0.0.0", server_port=7860)




<think>好的,用户想要下载Gradio库的特定版本5.22.0的wheel文件。首先,我需要确认用户的环境是否支持直接通过pip安装,或者是否需要手动下载wheel文件。用户之前可能遇到了需要Rust编译器的问题,引用[1]提到过,如果pip版本过旧,可能无法安装预构建的wheel,从而需要Rust编译器。所以用户可能遇到了类似的问题,想要直接下载wheel文件来避免编译依赖。 接下来,我应该检查Gradio 5.22.0在PyPI上的可用性。访问PyPI的Gradio页面,查看历史版本是否存在5.22.0的wheel文件。假设存在的话,用户可以使用pip下载命令来获取。如果用户的环境无法直接安装,可能需要手动下载。 另外,用户提到在云端环境配置A100 GPU,引用[2]可能涉及到环境配置的问题。用户可能是在类似Google Colab的环境中操作,需要注意系统架构和Python版本是否匹配wheel文件。 然后,考虑到用户可能遇到pip版本过旧的问题,需要提醒用户升级pip,这有助于确保能够正确处理wheel文件的安装。同时,如果用户需要手动下载,指导他们从PyPI或其他可信源获取,并注意平台和Python版本的兼容性,比如Linux的许多wheel文件是manylinux版本,而Windows和MacOS有不同的命名规则。 最后,用户可能担心依赖问题,特别是如果Gradio 5.22.0有特定依赖版本要求,需要确保这些依赖也被正确安装。此外,如果用户在使用过程中遇到问题,可能需要检查错误信息,确认是否与架构或依赖有关,并考虑使用虚拟环境隔离安装。 总结步骤:检查PyPI是否存在该版本的wheel,提供pip下载命令,提醒升级pip,手动下载的注意事项,依赖处理,以及故障排除建议。需要确保回答清晰,分步骤,并且引用相关的用户引用内容,如避免Rust编译的问题。</think>要下载Gradio库的特定版本5.22.0的wheel文件,可按照以下步骤操作: --- ### **1. 直接通过pip下载wheel** ```bash pip download gradio==5.22.0 --no-deps ``` - **作用**:仅下载Gradio 5.22.0的wheel文件(不安装依赖) - **输出路径**:默认保存在当前目录的`gradio-5.22.0-py3-none-any.whl`(文件名可能因平台而异) - **注意事项**: - 如果遇到`ERROR: Could not find a version`,需检查PyPI是否提供该版本的预编译包[^1] - 若需升级pip版本:`pip install --upgrade pip` --- ### **2. 手动从PyPI下载** 1. 访问Gradio的PyPI页面:https://pypi.org/project/gradio/5.22.0/#files 2. 根据系统选择对应的wheel文件: - **Linux**: `gradio-5.22.0-py3-none-any.whl` - **Windows**: `gradio-5.22.0-py3-none-any.whl` - **MacOS**: 同上 3. 下载后通过pip安装: ```bash pip install /path/to/gradio-5.22.0-py3-none-any.whl ``` --- ### **3. 云端环境适配(如Google Colab)** - **GPU配置**:确保已正确配置A100/A10G等GPU环境[^2] - **依赖冲突处理**: ```bash pip install gradio==5.22.0 --force-reinstall ``` --- ### **4. 常见问题排查** - **Rust编译器错误**:若提示需Rust环境,说明PyPI未提供预编译包,需升级pip或改用其他版本[^1] - **量化模型适配**:注意部分库版本可能对量化模型(如Int4)支持不完善[^3] ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

川涂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值