【Gradio-Windows-Linux】解决share=True无法创建共享链接,缺少frpc_windows_amd64_v0.2

时间:2024-11-11 17:20:42

前言

随着机器学习技术的快速发展,将训练好的模型部署为实际应用变得愈发重要。Gradio作为一个强大的开源库,为我们提供了一个简单而高效的解决方案。然而,近期在使用 share=True 时可能会遇到一些问题,具体来说,问题可能出现在缺少 frpc_windows_amd64_v0.2 文件的情况下,导致 share=True 功能无法正常工作。为了解决这个问题,我们提供了手动下载并添加该文件的详细步骤,使得您能够顺利地部署并共享您的机器学习模型。

在机器学习模型部署过程中,Gradio 和 frpc 是两个极具价值的工具。Gradio 提供了简单易用的界面,使得用户可以轻松地与模型进行交互,而 frpc 则是一个快速的反向代理工具,可以将本地服务映射到公共网络,使得远程访问成为可能。

文章目录

    • 前言
    • 问题描述
    • 问题可能原因
    • Gradio简介
    • frpc 简介
    • 解决方法
    • 适配frpc下载链接
    • Gradio 中 Share=True 的工作原理
    • 总结

Could not create share link. Please check your internet connection or our status page: 
https://.

许多朋友告诉我放入指定位置后仍然无法创建共享链接,我没遇到过这种情况,今天突发奇想使用这个命令禁止frpc执行权限

icacls frpc_windows_amd64_v0.2 /deny Users:(X)

在这里插入图片描述

于是这个问题就复现了在这里插入图片描述

要在 Windows 系统上为 frpc_windows_amd64_v0.2 文件授予执行权限,您可以使用 icacls 命令。请按照以下步骤进行操作:

  1. 打开命令提示符(以管理员身份运行其实不是管理员也行)。

    • 在开始菜单中搜索 “命令提示符”。
    • 右键单击 “命令提示符”,然后选择 “以管理员身份运行”。
  2. 切换到 frpc_windows_amd64_v0.2 文件所在的目录。

    • 使用 cd 命令进入文件所在的目录。例如:cd C:\path\to\file
  3. 使用 icacls 命令授予文件执行权限。

    • 运行以下命令:icacls frpc_windows_amd64_v0.2 /grant Users:(RX)在这里插入图片描述

这将为 frpc_windows_amd64_v0.2 文件授予所有用户的读取和执行权限。
在这里插入图片描述

问题描述

在使用 Gradio 部署机器学习模型时,您可能会遇到以下报错信息:

Running on local URL: http://127.0.0.1:7860

Could not create share link. Missing file: E:\venv\lib\site-packages\gradio\frpc_windows_amd64_v0.2. 

Please check your internet connection. This can happen if your antivirus software blocks the download of this file. You can install manually by following these steps: 

1. Download this file: [frpc_windows_amd64.exe](/frpc-gradio-0.2/frpc_windows_amd64.exe)
2. Rename the downloaded file to: `frpc_windows_amd64_v0.2`
3. Move the file to this location: `E:\venv\lib\site-packages\gradio`

这是你pip安装gradio的路径,你需要将frpc_windows_amd64_v0.2放在该路径下

E:\venv\lib\site-packages\gradio

问题可能原因

当您设置了 share=True 后,Gradio 会尝试创建一个公共链接,以便用户可以通过网络访问您部署的模型。在背后,Gradio 利用了 frpc 来实现这个功能。

然而,在近期的更新中,Gradio 似乎不再默认包含 frpc_windows_amd64_v0.2 文件,因此需要手动下载并添加到指定位置才能确保 share=True 功能正常运作。

我在8月前使用该功能一切正常,你可以尝试使用everything搜索frpc_windows_amd64,我的就是在旧的环境中找到的,这个可能是近期更新可能导致 Gradio 不再默认包含 frpc_windows_amd64_v0.2 文件,需要用户根据机器版本自行下载,从而引发了此问题。

Gradio简介

Gradio 为用户提供了一个直观易用的界面,使得将模型部署为 Web 应用或通过 API 提供服务成为一件相对容易的事情。以下是 Gradio 的一些主要特点和功能:

  1. 用户友好的交互界面

Gradio 提供了一个直观的用户界面,用户可以通过这个界面与机器学习模型进行交互。这意味着即使没有深入的技术知识,也可以轻松地使用部署的模型。

  1. 支持多种输入类型

Gradio 支持多种输入类型,包括文本、图像、音频、视频等。这使得它适用于各种类型的机器学习模型,从自然语言处理到计算机视觉和语音识别。

  1. 快速部署

使用 Gradio,您可以在短时间内将模型部署为一个可以通过 Web 浏览器访问的应用程序。这降低了将模型投入实际应用的门槛。

  1. 与常见深度学习框架兼容

Gradio 可以与许多常见的深度学习框架(如 TensorFlow、PyTorch)和机器学习库(如 Scikit-learn)无缝集成,使得它适用于各种不同的模型。

  1. 灵活的部署选项

您可以选择将模型部署为 Web 应用或者通过 API 提供服务,这取决于您的具体需求。这种灵活性使得 Gradio 在不同的场景中都能够发挥作用。

  1. 自定义选项

Gradio 提供了丰富的选项,允许用户自定义交互界面的外观和行为,以及与模型进行交互的方式。

  1. 支持多种输出类型

除了接受多种输入类型之外,Gradio 还可以处理多种输出类型,从分类到回归等等。

  1. 可视化反馈

Gradio 具有可视化反馈功能,可以显示模型的预测结果,使用户能够直观地理解模型的性能。

总的来说,Gradio 提供了一个简单而强大的工具,使得将机器学习模型部署为实际应用变得更加容易。它的用户友好性和灵活性使得它成为许多开发者和研究者的首选工具之一。无论是用于原型开发、演示还是实际应用,Gradio 都能为您提供便捷的解决方案。

frpc 简介

frpc(Fast Reverse Proxy Client)是一个用于将本地服务映射到公共网络的高效反向代理客户端工具。它是 frp(Fast Reverse Proxy)项目的一部分,提供了在网络中快速、安全地共享本地服务的能力。

以下是 frpc 的一些主要特点和功能:

  1. 反向代理功能

frpc 主要用于实现反向代理,将本地的服务映射到公共网络中。这意味着您可以将本地的服务通过 frpc 公开,使得远程用户可以访问这些服务。

  1. 网络穿透

frpc 可以穿透 NAT、防火墙等网络屏障,使得即使在复杂的网络环境中,也能够实现远程访问。

  1. 安全性

frpc 提供了一些安全措施,如身份验证和加密,以保护您的服务和数据免受未经授权的访问。

  1. 支持多种传输协议

frpc 支持多种传输协议,包括 TCP、UDP、HTTP、HTTPS 等,使得它适用于各种不同类型的服务和应用。

  1. 配置灵活

frpc 使用简单的配置文件来指定映射规则,使得用户可以轻松地配置映射规则以满足特定需求。

  1. 跨平台支持

frpc 可以在多种操作系统上运行,包括 Windows、Linux、macOS 等。

  1. 高性能

frpc 采用了高效的设计和实现,具有很好的性能表现,能够处理高负载的情况。

  1. 动态更新

frpc 支持动态更新配置,可以在运行时更新映射规则,而无需重启 frpc 服务。

总的来说,frpc 提供了一种快速、安全、灵活的方式来共享本地服务,使得远程访问变得更加容易。它在许多场景下都得到了广泛的应用,尤其在需要远程访问本地服务的情况下,是一个非常实用的工具。无论是用于个人项目、企业应用还是开发者的测试环境,frpc 都能为您提供方便的解决方案。

解决方法

  1. 下载 frpc_windows_amd64_v0.2
  2. 将下载的文件重命名为 frpc_windows_amd64_v0.2
  3. 将该文件移动到 Gradio 的安装目录下,通常位置需要根据你运行时gradio的提示决定:

如果你和我一样每次都使用python -m venv venv创建新的空白解释器环境
半自动化使用.bat手动打包迁移python项目

python -m venv venv
call venv\Scripts\
python -m pip install -i /pypi/simple/ --upgrade pip setuptools
pip install -i /pypi/simple/ gradio

那么Gradio 的安装路径就在python -m venv venv
创建的venv文件夹中

venv\lib\site-packages\gradio

请在进行任何文件操作前,务必备份重要数据,以防意外情况发生。

适配frpc下载链接

我的网络登录不上huggingface,我这里有三个版本适配的frpc,
frpc_windows_amd64 v0.2
frpc linux arm64
frpc_linux_amd64

链接:/s/1sunHLWTJhNCuvNw8QYjRJQ?pwd=3alv
提取码:3alv
GitHub
/friklogff/frpc_windows_amd64_v0.2

Gradio 中 Share=True 的工作原理

当在 Gradio 中设置 share=True 时,它会触发一系列后台操作,以实现以下效果:

  1. 创建公共链接

    Gradio 首先会尝试在网络上生成一个可以被外部访问的链接,以便用户可以直接通过浏览器等方式与模型进行交互。这个链接是一个统一资源定位符(URL),类似于 http://127.0.0.1:7860

  2. 利用 frpc 实现反向代理

    Gradio 利用了 frpc 的反向代理功能,将本地的服务暴露到公共网络上。通常情况下,frpc 会创建一个随机的临时端口,并将该端口映射到 Gradio 提供的本地服务上。这样,远程用户可以通过访问这个公共端口来使用模型。

  3. 确保稳定性与安全性

    在这个过程中,Gradio 会确保链接的稳定性和安全性。它会处理各种网络条件和可能出现的问题,以保护用户的隐私和数据安全。

  4. 启动本地服务

    Gradio 会在本地启动一个服务器,该服务器会监听来自 frpc 映射的临时端口的请求。当远程用户访问公共链接时,请求将通过反向代理转发到本地服务。

  5. 反馈预测结果

    一旦收到请求,Gradio 会将请求的数据传递给模型进行预测,并将预测结果返回给用户。这个过程通常是实时的,用户可以即时看到模型的响应。

  6. 关闭临时端口

    当用户结束访问或链接超时时,Gradio 会自动关闭 frpc 创建的临时端口,从而保证安全性和资源的释放。

总的来说,通过 Gradio 中的 share=True 选项,用户可以将模型服务轻松地共享到公共网络中,使得远程用户可以通过浏览器等方式与模型进行交互。这个过程是自动化的,无需用户手动配置反向代理或网络配置,大大降低了部署模型的复杂度。

总结

通过本文的介绍和解决方案,您应该能够顺利解决使用 Gradio 中 share=True 功能时可能遇到的问题。Gradio 作为一个强大的机器学习模型部署工具,为我们提供了极大的便利性和灵活性。通过正确配置 frpc 组件,您可以轻松地将模型服务共享到公共网络中,使得远程用户可以方便地与您的模型进行交互。

希望本文对您在机器学习模型部署过程中的问题解决提供了帮助,也希望您能充分利用 Gradio 和 frpc,为您的项目和应用提供更好的用户体验和服务。