将 Python 仿真工具部署并嵌入个人博客

本教程将指导你如何利用 Streamlit Cloud 免费托管 Python 应用,并通过 iframe 将其集成到 HexoHalo 博客文章中。

📋 准备工作

在开始之前,请确保你拥有以下条件:

  • 一个 GitHub 账号。
  • 本地已编写好的 Streamlit 代码(例如 app.py)。
  • 一个现有的 Hexo 或 Halo 博客。

第一阶段:准备项目文件

Streamlit Cloud 需要从你的 GitHub 仓库读取代码,因此我们需要规范化文件结构。

1. 准备代码文件 (app.py)

确保你的主程序文件命名为 app.py(或其他 .py 文件名),并确保在本地运行无误。

2. 创建依赖文件 (requirements.txt)

app.py 同级目录下,创建一个名为 requirements.txt 的文本文件。文件名必须完全一致(全小写、复数)

在文件中列出项目用到的所有第三方库,例如:

text 复制代码
streamlit
numpy
matplotlib

3. 上传至 GitHub

  1. 登录 GitHub,点击右上角 + 号 -> New repository
  2. Repository name :填写项目名称(例如 optical-lab)。
  3. Visibility :选择 Public(公开),这对免费部署至关重要。
  4. 点击 Create repository
  5. 在跳转页面中,点击 uploading an existing file
  6. app.pyrequirements.txt 拖入上传区域,点击 Commit changes

第二阶段:部署到 Streamlit Cloud

我们将使用 Streamlit 官方提供的免费云服务来托管你的应用。

  1. 访问 Streamlit Cloud 官网 并点击 Sign up
  2. 选择 Continue with GitHub 进行登录授权。
  3. 进入控制台后,点击右上角的 New app
  4. 填写部署表单:
    • Repository :在下拉菜单中选择刚才创建的仓库(如 yourname/optical-lab)。
    • Branch :通常默认为 mainmaster
    • Main file path :选择你的主程序文件 app.py
  5. 点击 Deploy! 按钮。

☕ 等待部署

系统会自动安装 Python 环境和 requirements.txt 中的依赖。首次部署通常需要 2-5 分钟。当看到应用界面出现时,即表示部署成功。

关键步骤 :复制浏览器地址栏中的 URL(例如 https://optical-lab-xxxx.streamlit.app),这是你的专属工具链接。


第三阶段:嵌入博客 (Hexo / Halo)

最后一步是将云端应用"镶嵌"到你的博客文章中。

1. 编辑 Markdown 文章

打开你的 Hexo 或 Halo 博客后台,新建或编辑一篇文章。

2. 插入嵌入代码

在文章的合适位置,直接粘贴以下 HTML 代码。请务必将 src 替换为你第二阶段获取的真实链接:

html 复制代码
<iframe 
    src="[https://你的工具链接.streamlit.app?embed=true](https://你的工具链接.streamlit.app?embed=true)" 
    height="850" 
    width="100%" 
    style="border:none; border-radius: 10px; box-shadow: 0 4px 6px rgba(0,0,0,0.1);">
</iframe>

参数详解:

  • ?embed=true必填。隐藏 Streamlit 顶部的汉堡菜单和红条,让界面更干净。
  • height="850":根据你的应用内容长度调整高度。
  • style="...":添加圆角和阴影,使嵌入框更美观,符合现代博客设计风格。

常见问题排查 (Troubleshooting)

问题现象 可能原因 解决方案
ModuleNotFoundError 缺少依赖描述文件 检查 GitHub 仓库根目录是否有 requirements.txt
一直显示 "In the oven" 正在安装依赖或网络延迟 如果超过 10 分钟,点击右下角 "Manage app" 查看 Logs 报错。
Error: Image not found 本地图片路径错误 云端无法读取本地路径。请将图片也上传到 GitHub,并使用相对路径读取。

🎉 恭喜! 你现在已经拥有了一个可交互的在线仿真实验室,快去分享吧!

可以查看我生成的高斯光束的案例Gaussian Beam APP,建议全局运行。

相关推荐
阿里嘎多学长3 小时前
2026-04-30 GitHub 热点项目精选
开发语言·程序员·github·代码托管
m0_613856294 小时前
mysql如何利用事务隔离级别解决特定业务冲突_mysql隔离方案选型
jvm·数据库·python
Adios7944 小时前
VPR:Pitts50K和Norland数据集下载
数据库
东风破1375 小时前
DM用户权限、表、约束等对象的基本操作,SQL日志的开启介绍
数据库·sql·dm达梦数据库
叶小鸡5 小时前
Java 篇-项目实战-苍穹外卖-笔记汇总
java·开发语言·笔记
收获不止数据库5 小时前
达梦9发布会归来:AI 时代,我们需要一款什么样的数据库?
数据库·人工智能·ai·语言模型·数据分析
AI人工智能+电脑小能手5 小时前
【大白话说Java面试题】【Java基础篇】第22题:HashMap 和 HashSet 有哪些区别
java·开发语言·哈希算法·散列表·hash
小宇的天下5 小时前
Virtuoso GUI 界面中的关键模块定义
数据库
我的xiaodoujiao5 小时前
API 接口自动化测试详细图文教程学习系列16--项目实战演练3
python·学习·测试工具·pytest
bqq198610265 小时前
MySQL 5.7 与 MySQL 8.0 的主要区别
数据库·mysql