【Gradio】Could not create share link

本文涉及的产品
云防火墙,500元 1000GB
简介: 【Gradio】Could not create share link

写在最前面

在开发和测试机器学习模型或数据科学应用时,我们经常使用Gradio这样的工具来创建快速、交互式的原型。Gradio允许我们通过简单的界面与模型进行交互,无需构建复杂的前端应用。

去年的项目,重新部署运行Gradio时,我遇到如下的错误信息:

Running on local URL: http://0.0.0.0:9966

Could not create share link. Please check your internet connection or

our status page: https://status.gradio.app

这个错误通常表明Gradio尝试创建一个共享链接以便你可以将你的应用分享给其他人,但是出于某种原因失败了

参考:

gradio无法生成可分享的外部连接Could not create share link. Missing file:或Could not create share link. Please che

https://blog.csdn.net/unp/article/details/131479915

碎碎念:啊啊心态小爆炸orz,去年咋没做笔记。。找不到咋部署,忘记要挂后台了,好多处理细节又得重新试

没事这次做一下笔记,方便下次

在服务器端一直运行一个Python脚本

先进入到conda环境,然后在找到运行的py文件,比如我的/home/tjh/wyt/CT-summary/page2.py

最后输入命令:

nohup python /home/tjh/wyt/CT-summary/page2.py >out.log 2>&1 &

解决:下载frpc_linux_amd64文件,并添加权限

cd进入frpc_linux_amd64文件的位置(在类似路径.conda/envs/ChatGLM2/lib/python3.11/site-packages/gradio),输入以下命令给予权限:chmod +x frpc_linux_amd64_v0.2

参考:https://blog.csdn.net/bsy1111/article/details/133245312

  1. 先关闭防火墙,要不然会报错病毒不给下载。然后点击程序提示的第一个链接,下载frpc_linux_amd64文件;

    或者在https://github.com/friklogff/frpc_windows_amd64_v0.2/blob/main/frpc_linux_amd64这里下载

  1. 在本地将文件名字改为:frpc_linux_amd64_v0.2;
  2. 上传到对应的gradio安装包下面。(关于如何找到gradio安装包位置,可以参考后面附的完整碰壁过程)

总之就是先按照上面的提示先操作一遍。

如果此时还不好用,那么就可能是你上传文件到云服务器之后,会出现的一个文件读写权限的问题:

解决办法:

上传之后终端进入到gradio安装包的文件夹,输入如下命令:

sudo chmod +x frpc_linux_amd64_v0.2

或者

chmod +x frpc_linux_amd64_v0.2

更文件夹一个读写权限,问题解决。

原理

参考:https://blog.csdn.net/qq_42681787/article/details/132303480

弄一个内网穿透。

之后,我又修改了share=True,Gradio返回了一个类似这样的地址,通过这个地址还是访问不到应用,后来查阅资料才发现share=True返回的地址是 Gradio 官网提供的免费公共 URL,可以通过公网访问你本地部署的 Gradio 应用程序。share=True会向 Gradio 服务器注册你的应用程序,并把应用程序的公网 URL 地址返回给你。当你在浏览器中访问该地址时,Gradio 服务器就会通过反向代理的方式将用户的请求转发到你的本地 Gradio 应用程序上。这种实现方式可以使用户在不知道具体本地部署的情况下,通过公共网址轻松地访问 Gradio 应用程序。但是我部署到的团队服务器跟我的电脑是局域网连接起来的,这个服务器外网是访问不到的。

之后我将server_name指定为服务器的地址,应用可以访问。

或者把server_name=“0.0.0.0”也可以解决该问题

完整过程:先找gradio库位置,然后发现缺失文件

先找gradio库位置,然后发现缺失文件

在Linux系统中,可以通过终端(Terminal)使用一系列命令来查找文件或目录并进入到指定路径。下面是一步步如何找到gradio库所在的位置并进入到该目录的方法:

1. 打开终端

首先,您需要打开终端(Terminal)。这可以通过搜索“Terminal”或通过快捷键(通常是Ctrl+Alt+T)来完成。

也可以是直接在xshell输入指令。

2. 使用 find 命令查找 gradio 目录

您可以使用 find 命令来查找整个系统中 gradio 目录的位置。由于您已经知道 .conda/envs/ 目录下大概的路径,可以从这个位置开始查找以缩短搜索时间。输入以下命令:

find ~/ -type d -name gradio

这条命令的解释如下:

  • find 是用于查找文件和目录的命令。
  • ~/ 表示从您的主目录开始搜索,这样做是为了缩小搜索范围,使搜索更快。如果你确定 .conda 目录在其他位置,可以相应地调整这个路径。
  • -type d 表示您只想查找目录(不查找文件)。
  • -name gradio 表示您要查找名称为 gradio 的目录。

3. 查看 find 命令的输出

该命令会列出系统中所有名为 gradio 的目录的路径。输出应该包含一个或多个路径,您需要从中找出看起来像是 .conda/envs/ChatGLM2/lib/python3.11/site-packages/gradio 的那个路径。

4. 进入 gradio 目录

一旦找到了正确的 gradio 目录,可以使用 cd 命令来进入该目录。

假设在上一步骤中找到的路径是 /home/用户名/.conda/envs/ChatGLM2/lib/python3.11/site-packages/gradio,就可以输入:

cd /home/用户名/.conda/envs/ChatGLM2/lib/python3.11/site-packages/gradio

将其中的 用户名 替换为您的实际用户名。

5. 验证当前目录

输入 pwd 命令来验证您当前所在的目录,确保您已成功进入到了 gradio 目录中。

pwd

这条命令会输出您当前所在的完整路径,您可以确认是否和预期一致。

通过上述步骤,您就可以通过查看Linux系统下所有文件夹,一步步找到自己的 gradio 目录所在位置,并成功进入到该目录中。

其他解决流程

在开发和测试机器学习模型或数据科学应用时,我们经常使用Gradio这样的工具来创建快速、交互

式的原型。Gradio允许我们通过简单的界面与模型进行交互,无需构建复杂的前端应用。然而,有时候在本地运行Gradio时,你可能会遇到如下的错误信息:

Running on local URL: http://0.0.0.0:9966
Could not create share link. Please check your internet connection or our status page: https://status.gradio.app

这个错误通常表明Gradio尝试创建一个共享链接以便你可以将你的应用分享给其他人,但是出于某种原因失败了。下面是一些解决这个问题的方法:

1. 检查互联网连接

  • 首先,确保你的设备连接到互联网。尝试访问其他网站或服务以验证你的连接是否正常。

2. 访问Gradio状态页面

  • 然后,访问Gradio状态页面来检查Gradio服务是否有任何已知的故障或维护。如果有服务中断,你可能需要等待直到问题被解决。

3. 使用本地模式

  • 如果你只是希望在本地测试Gradio界面,并不需要创建共享链接,你可以在启动Gradio应用时指定不创建共享链接。可以通过添加参数share=False来实现这一点。例如,如果你通常是这样启
  • 启动Gradio的:
import gradio as gr

def my_model_function(input):
    # 你的模型逻辑
    return output

iface = gr.Interface(fn=my_model_function, inputs="text", outputs="text")
iface.launch()

你可以修改最后一行为:

iface.launch(share=False)

这将避免尝试创建共享链接,但仍然允许你在本地访问和测试界面。

4. 检查防火墙和网络设置

  • 有时,网络设置或防火墙可能阻止Gradio创建共享链接。确保你的网络设置允许出站连接到Gradio的服务器,并且没有任何软件(如防火墙或安全软件)阻止Gradio操作。

5. 更新Gradio到最新版本

  • Gradio团队持续改进软件并修复已知问题。通过运行以下命令,确保你安装了最新版本的Gradio:
pip install --upgrade gradio

6. 寻求帮助

  • 如果以上方法都没有解决问题,你可以在Gradio的GitHub仓库中查找类似的问题或开启一个新的Issue。提供你遇到的错误信息和你已经尝试的解决方法,这样社区或者Gradio团队成员可以提供帮助。

使用这些步骤,你应该能够解决Gradio无法创建共享链接的问题,继续开发和测试你的应用。如果问题持续存在,不要犹豫寻求社区的帮助。

目录
相关文章
|
6月前
|
Linux iOS开发 MacOS
pnpm全局安装报错:Run “pnpm setup“ to create it automatically, or set the global-bin-dir setting, or the PN
pnpm全局安装报错:Run “pnpm setup“ to create it automatically, or set the global-bin-dir setting, or the PN
1816 0
|
SQL 算法
【hacker的错误集】html5lib使用报错Couldn‘t find a tree builder with the features you requested: html5lib
分析得出:bs4的特征没有找到:找不到具有您请求功能的树生成器:html5lib。您需要安装解析器库吗?
410 0
【hacker的错误集】html5lib使用报错Couldn‘t find a tree builder with the features you requested: html5lib
|
5月前
|
人工智能 C++ Windows
[NextJs] 解决 Failed to load SWC binary for win32/64
快速解决 Next.js 在 Windows 下运行时 SWC Binary 报错的方法,包括安装 Microsoft Visual C++ Redistributable 和确认处理器架构。
|
4月前
|
存储 JavaScript 算法
若依修改-Starting development server...10% building 0/1 modules 1 active ...-node
若依修改-Starting development server...10% building 0/1 modules 1 active ...-node
文本,vitepress,Failed to resolve import “Users}17AppDataRoamingTyporaypora-user-imagesimage
文本,vitepress,Failed to resolve import “Users}17AppDataRoamingTyporaypora-user-imagesimage
error: Two output files share the same path but have different contents: node_modules\.vite\..xxx.js
error: Two output files share the same path but have different contents: node_modules\.vite\..xxx.js
714 0
error: Two output files share the same path but have different contents: node_modules\.vite\..xxx.js
Perhaps you should add the directory containing libpcre.pc to the PKG_CONFIG_PATH
Perhaps you should add the directory containing libpcre.pc to the PKG_CONFIG_PATH
152 0
|
Shell
Detected problems with app native libraries (please consult log for detail): lib.so: text relocation
Detected problems with app native libraries (please consult log for detail): lib.so: text relocation
157 0
Package sqlite3 was not found in the pkg-config search path.add the directory containing `sqlite3.pc
Package sqlite3 was not found in the pkg-config search path.add the directory containing `sqlite3.pc
181 0
|
iOS开发 MacOS
如何解决npm命令报错Missing write access to /usr/local/lib/node_modules
如何解决npm命令报错Missing write access to /usr/local/lib/node_modules
如何解决npm命令报错Missing write access to /usr/local/lib/node_modules