跳到主要内容

Custom Python Spaces

[!TIP] 现在 Spaces 已经支持任意 Dockerfile,所以你可以直接通过 Docker Spaces 来托管任何 Python 应用。

虽然这不是“官方推荐工作流”,但你也可以在选择 Gradio 作为 SDK 的前提下,自己在 Spaces 中运行一套自定义的 Python + 前端栈,只要你的前端服务监听在 7860 端口即可。可以参考这些 templates 示例仓库来上手。

Spaces 会被嵌入在 iframe 中,这意味着默认情况下,链接是不能在父页面中直接打开的。最简单的解决方案,是在新窗口中打开链接:

<a href="https://hf.space" rel="noopener" target="_blank">Spaces</a>

通常情况下,如果使用的是 Gradio 自带的界面,Space 的高度会自动适配内容。但如果你在 Gradio SDK 下提供了自己的前端,而内容高度又超过了视口高度,那么你需要额外引入一个 iFrame Resizer script,这样 iframe 中的内容才可以正常滚动:

<script src="https://cdnjs.cloudflare.com/ajax/libs/iframe-resizer/4.3.2/iframeResizer.contentWindow.min.js"></script>

例如,下面是同一个 Space 在没有引入脚本和引入脚本后的效果对比: