龍魂系统 · 手把手教程 v2.0> **5分钟跑起来 · 带图形自动生成 · 点击即看 · 复制粘贴即可**
·
🐉 龍魂系统 · 手把手教程 v2.0
5分钟跑起来 · 带图形自动生成 · 点击即看 · 复制粘贴即可
DNA:#龍芯⚡️丙午·辛未·TUTORIAL-v2.0
UID: 9622
最后更新: 2026-07-13
📋 你需要的
| 东西 | 怎么搞 | 耗时 |
|---|---|---|
| 电脑一台 | Mac / Windows / Linux / 鸿蒙PC 都行 | — |
| Python 3.9+ | python.org 下载安装 | 2分钟 |
| 网络 | 能上网就行 | — |
| 手指 | 复制粘贴 | — |
🚀 第一步:安装 Python(复制粘贴)
Mac
# 安装 Homebrew(如果没有)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 安装 Python
brew install python@3.12
# 验证
python3 --version
# 应该显示: Python 3.12.x
Windows
- 打开浏览器 → https://python.org/downloads/
- 下载 Python 3.12.x Windows installer (64-bit)
- 运行安装程序 → ⚠️ 必须勾选 ☑ Add Python to PATH
- 点 Install Now → 等装完
- 打开 PowerShell(Win+R → 输入
powershell→ 回车)
python --version
# 应该显示: Python 3.12.x
Linux (Ubuntu/Debian)
sudo apt update && sudo apt install -y python3 python3-pip python3-venv
python3 --version
华为欧拉 openEuler
sudo dnf install -y python3 python3-pip python3-devel
python3 --version
🐉 第二步:创建项目并安装依赖(复制粘贴)
# 1. 创建项目文件夹
mkdir ~/longhun-system
cd ~/longhun-system
# 2. 创建虚拟环境
python3 -m venv venv
# 3. 激活虚拟环境
# Mac/Linux:
source venv/bin/activate
# Windows PowerShell:
# .\venv\Scripts\Activate.ps1
# Windows CMD:
# venv\Scripts\activate.bat
# 4. 安装依赖
pip install flask matplotlib numpy
🔥 第三步:保存核心代码(复制粘贴保存)
把下面代码全部复制,保存为 longhun-core.py:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
═══════════════════════════════════════════
龍魂体系 | 核心模板 · 开源快速开始
═══════════════════════════════════════════
DNA: #龍芯⚡️丙午·辛未·CORE-TEMPLATE-v2.0
确认码: #CONFIRM🌌9622-ONLY-ONCE🧬LK9X-772Z
创建者: 💎 龍芯北辰 | UID9622
三色审计状态: 🟢 通过
═══════════════════════════════════════════
"""
import json
import hashlib
import time
import io
import base64
from pathlib import Path
from flask import Flask, render_template_string, jsonify, request
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import numpy as np
# ═══════════════════════════════════════════
# 龍魂DNA · 焊死
# ═══════════════════════════════════════════
DNA = "ZHUGEXIN⚡️2025-🇨🇳🐉⚖️♠️🧚🏼♀️❤️♾️"
UID = "9622"
VERSION = "v2.0"
PORT = 9622
# ═══════════════════════════════════════════
# 核心数据 · 蚁群节点
# ═══════════════════════════════════════════
NODES = {
"CN-1": {"name": "华为盘古", "type": "domestic", "status": "active", "desc": "华为自研大模型"},
"CN-2": {"name": "阿里通义", "type": "domestic", "status": "active", "desc": "阿里云千问系列"},
"CN-3": {"name": "百度文心", "type": "domestic", "status": "active", "desc": "百度文心一言"},
"CN-4": {"name": "讯飞星火", "type": "domestic", "status": "active", "desc": "科大讯飞大模型"},
"CN-5": {"name": "腾讯混元", "type": "domestic", "status": "active", "desc": "腾讯混元大模型"},
"CN-6": {"name": "字节豆包", "type": "domestic", "status": "active", "desc": "字节跳动大模型"},
"OS-1": {"name": "DeepSeek", "type": "open_source", "status": "active", "desc": "深度求索开源"},
"OS-2": {"name": "Qwen开源", "type": "open_source", "status": "active", "desc": "通义千问开源版"},
"OS-3": {"name": "ChatGLM", "type": "open_source", "status": "active", "desc": "智谱开源"},
"LOC-1": {"name": "Ollama本地", "type": "local", "status": "active", "desc": "本地大模型运行时"},
}
# ═══════════════════════════════════════════
# 图形生成 · 自动渲染
# ═══════════════════════════════════════════
def fig_to_base64(fig):
"""matplotlib 图形 → base64 图片(直接嵌HTML)"""
buf = io.BytesIO()
fig.savefig(buf, format='png', dpi=120, bbox_inches='tight',
facecolor='#0a0a0a', edgecolor='none')
buf.seek(0)
return base64.b64encode(buf.read()).decode()
def chart_node_types():
"""饼图:节点类型分布(国产/开源/本地)"""
types = {"domestic": 0, "open_source": 0, "local": 0}
for n in NODES.values():
types[n["type"]] += 1
fig, ax = plt.subplots(figsize=(5, 4))
colors = ["#c41e3a", "#00cc66", "#d4a843"]
labels = ["国产模型", "开源模型", "本地部署"]
sizes = [types["domestic"], types["open_source"], types["local"]]
explode = (0.02, 0.02, 0.02)
wedges, texts, autotexts = ax.pie(
sizes, explode=explode, labels=labels, colors=colors,
autopct='%1.1f%%', startangle=90,
textprops={'color': 'white', 'fontsize': 11}
)
for at in autotexts:
at.set_fontweight('bold')
ax.set_title("🐉 龍魂节点类型分布", color='white', fontsize=14, pad=15)
fig.patch.set_facecolor('#0a0a0a')
return fig_to_base64(fig)
def chart_search_performance():
"""柱状图:搜索性能(模拟5人格×4引擎)"""
personas = ["军事", "历史", "哲学", "经济", "政治"]
engines = {
"布隆快筛": [0.12, 0.15, 0.18, 0.14, 0.11],
"BM25": [0.45, 0.52, 0.48, 0.50, 0.47],
"向量匹配": [0.78, 0.82, 0.85, 0.79, 0.76],
"编辑距离": [0.32, 0.35, 0.38, 0.33, 0.30],
}
fig, ax = plt.subplots(figsize=(8, 5))
x = np.arange(len(personas))
width = 0.2
colors = ["#c41e3a", "#d4a843", "#00cc66", "#4488ff"]
for i, (name, scores) in enumerate(engines.items()):
bars = ax.bar(x + i * width, scores, width, label=name, color=colors[i], alpha=0.85)
for bar in bars:
h = bar.get_height()
ax.text(bar.get_x() + bar.get_width()/2., h + 0.01,
f'{h:.2f}', ha='center', va='bottom', color='white', fontsize=8)
ax.set_xlabel("人格模式", color='white', fontsize=12)
ax.set_ylabel("F1 得分", color='white', fontsize=12)
ax.set_title("🔍 5人格 × 4引擎 搜索性能矩阵", color='white', fontsize=14, pad=15)
ax.set_xticks(x + width * 1.5)
ax.set_xticklabels(personas, color='white')
ax.legend(facecolor='#1a1a1a', edgecolor='#333', labelcolor='white')
ax.set_facecolor('#111')
ax.tick_params(colors='white')
ax.set_ylim(0, 1.0)
ax.grid(axis='y', alpha=0.2, color='white')
fig.patch.set_facecolor('#0a0a0a')
plt.tight_layout()
return fig_to_base64(fig)
def chart_audit_status():
"""横向柱状图:三色审计统计"""
categories = ["DNA合规", "闸门通过", "三色审计", "GPG签名", "CNSH对齐"]
green = [95, 88, 92, 85, 90]
yellow = [3, 7, 5, 8, 6]
red = [2, 5, 3, 7, 4]
fig, ax = plt.subplots(figsize=(7, 4))
y = np.arange(len(categories))
height = 0.25
ax.barh(y + height, green, height, label='🟢 通过', color='#00cc66', alpha=0.85)
ax.barh(y, yellow, height, label='🟡 警告', color='#d4a843', alpha=0.85)
ax.barh(y - height, red, height, label='🔴 拒绝', color='#c41e3a', alpha=0.85)
for i, (g, yv, r) in enumerate(zip(green, yellow, red)):
ax.text(g + 1, i + height, f'{g}%', va='center', color='#00cc66', fontsize=9)
ax.text(yv + 1, i, f'{yv}%', va='center', color='#d4a843', fontsize=9)
ax.text(r + 1, i - height, f'{r}%', va='center', color='#c41e3a', fontsize=9)
ax.set_yticks(y)
ax.set_yticklabels(categories, color='white')
ax.set_xlabel("百分比 (%)", color='white')
ax.set_title("🛡️ 三色审计 · 五维质量报告", color='white', fontsize=14, pad=15)
ax.legend(facecolor='#1a1a1a', edgecolor='#333', labelcolor='white', loc='lower right')
ax.set_facecolor('#111')
ax.tick_params(colors='white')
ax.set_xlim(0, 105)
ax.grid(axis='x', alpha=0.2, color='white')
fig.patch.set_facecolor('#0a0a0a')
plt.tight_layout()
return fig_to_base64(fig)
# ═══════════════════════════════════════════
# HTML模板 · 龍魂暗色主题
# ═══════════════════════════════════════════
HTML = '''<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>🐉 龍魂系统 · 监控面板 v2.0</title>
<style>
:root {
--bg: #0a0a0a;
--card: #1a1a1a;
--border: #2a2a2a;
--gold: #d4a843;
--red: #c41e3a;
--green: #00cc66;
--text: #ccc;
--dim: #666;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: "PingFang SC", "Microsoft YaHei", sans-serif;
background: var(--bg);
color: var(--text);
min-height: 100vh;
}
.header {
text-align: center;
padding: 30px 20px 20px;
border-bottom: 2px solid var(--red);
background: linear-gradient(180deg, #111 0%, var(--bg) 100%);
}
.header h1 { font-size: 28px; color: var(--gold); margin-bottom: 8px; }
.header .subtitle { color: var(--dim); font-size: 13px; }
.header .dna-badge {
display: inline-block;
background: #111;
border: 1px solid var(--border);
border-radius: 20px;
padding: 4px 16px;
margin-top: 10px;
font-size: 11px;
color: var(--dim);
font-family: monospace;
}
/* 快速开始卡片 */
.quick-start {
max-width: 900px;
margin: 25px auto;
background: #111;
border: 1px solid var(--red);
border-radius: 10px;
padding: 25px 30px;
}
.quick-start h2 { color: var(--gold); margin-bottom: 15px; font-size: 20px; }
.quick-start .step {
display: flex;
align-items: flex-start;
margin-bottom: 12px;
gap: 12px;
}
.quick-start .step-num {
background: var(--red);
color: white;
border-radius: 50%;
width: 26px; height: 26px;
display: flex; align-items: center; justify-content: center;
font-size: 13px; font-weight: bold;
flex-shrink: 0;
margin-top: 2px;
}
.quick-start pre {
background: #0a0a0a;
border: 1px solid var(--border);
border-radius: 6px;
padding: 10px 14px;
font-family: "SF Mono", "Fira Code", monospace;
font-size: 13px;
color: var(--green);
overflow-x: auto;
margin: 0;
}
.quick-start code {
background: #0a0a0a;
color: var(--gold);
padding: 2px 6px;
border-radius: 3px;
font-size: 13px;
}
/* 主内容 */
.container { max-width: 1300px; margin: 0 auto; padding: 20px; }
/* 节点卡片 */
.section-title {
color: var(--gold);
font-size: 20px;
margin: 30px 0 15px;
padding-bottom: 8px;
border-bottom: 1px solid var(--border);
}
.node-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
gap: 15px;
margin-bottom: 30px;
}
.node-card {
background: var(--card);
border: 1px solid var(--border);
border-radius: 8px;
padding: 18px;
transition: all 0.2s;
position: relative;
overflow: hidden;
}
.node-card:hover {
border-color: var(--gold);
transform: translateY(-2px);
box-shadow: 0 4px 20px rgba(212,168,67,0.1);
}
.node-card.domestic { border-left: 4px solid var(--red); }
.node-card.open_source { border-left: 4px solid var(--green); }
.node-card.local { border-left: 4px solid var(--gold); }
.node-card .name { font-size: 16px; font-weight: bold; color: white; margin-bottom: 8px; }
.node-card .type-tag {
display: inline-block;
padding: 2px 10px;
border-radius: 12px;
font-size: 11px;
margin-bottom: 8px;
}
.node-card .type-tag.domestic { background: rgba(196,30,58,0.2); color: var(--red); }
.node-card .type-tag.open_source { background: rgba(0,204,102,0.2); color: var(--green); }
.node-card .type-tag.local { background: rgba(212,168,67,0.2); color: var(--gold); }
.node-card .desc { font-size: 13px; color: var(--dim); }
.node-card .status-dot {
position: absolute;
top: 18px; right: 18px;
width: 10px; height: 10px;
border-radius: 50%;
background: var(--green);
box-shadow: 0 0 8px var(--green);
}
/* 图表区 */
.charts {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
gap: 20px;
margin-bottom: 30px;
}
.chart-card {
background: var(--card);
border: 1px solid var(--border);
border-radius: 10px;
padding: 20px;
text-align: center;
}
.chart-card h3 {
color: var(--gold);
margin-bottom: 15px;
font-size: 16px;
text-align: left;
}
.chart-card img {
max-width: 100%;
border-radius: 6px;
}
/* API端点卡片 */
.api-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
gap: 12px;
margin-bottom: 30px;
}
.api-card {
background: var(--card);
border: 1px solid var(--border);
border-radius: 8px;
padding: 15px;
}
.api-card .method {
display: inline-block;
padding: 2px 8px;
border-radius: 4px;
font-size: 11px;
font-weight: bold;
margin-bottom: 8px;
}
.api-card .method.get { background: rgba(0,204,102,0.2); color: var(--green); }
.api-card .endpoint {
font-family: monospace;
color: var(--gold);
font-size: 14px;
margin-bottom: 6px;
word-break: break-all;
}
.api-card .api-desc { font-size: 12px; color: var(--dim); }
.footer {
text-align: center;
padding: 30px;
border-top: 1px solid var(--border);
color: var(--dim);
font-size: 12px;
margin-top: 30px;
}
.footer a { color: var(--gold); text-decoration: none; }
/* 响应式 */
@media (max-width: 768px) {
.node-grid { grid-template-columns: 1fr; }
.charts { grid-template-columns: 1fr; }
.header h1 { font-size: 22px; }
}
</style>
</head>
<body>
<div class="header">
<h1>🐉 龍魂系统 · 开源监控面板</h1>
<div class="subtitle">数据主权在中国 · 技术为人民服务</div>
<div class="dna-badge">DNA: {{ dna }}</div>
<div style="color:var(--dim);margin-top:6px;font-size:12px;">
UID: {{ uid }} | 版本: {{ version }} | 时间: {{ timestamp }}
</div>
</div>
<div class="quick-start">
<h2>🚀 快速开始(复制粘贴即可)</h2>
<div class="step">
<div class="step-num">1</div>
<div>
<div style="margin-bottom:4px;">安装依赖</div>
<pre>pip install flask matplotlib numpy</pre>
</div>
</div>
<div class="step">
<div class="step-num">2</div>
<div>
<div style="margin-bottom:4px;">启动系统</div>
<pre>python longhun-core.py</pre>
</div>
</div>
<div class="step">
<div class="step-num">3</div>
<div>
<div style="margin-bottom:4px;">打开浏览器</div>
<pre>http://localhost:{{ port }}</pre>
</div>
</div>
<div class="step">
<div class="step-num">4</div>
<div>
<div style="margin-bottom:4px;">查看API(新终端窗口)</div>
<pre>curl http://localhost:{{ port }}/api/status</pre>
</div>
</div>
</div>
<div class="container">
<!-- 图表 -->
<div class="section-title">📊 实时数据看板</div>
<div class="charts">
<div class="chart-card">
<h3>🐉 节点类型分布</h3>
<img src="data:image/png;base64,{{ chart_pie }}" alt="节点分布饼图">
</div>
<div class="chart-card">
<h3>🔍 搜索性能矩阵</h3>
<img src="data:image/png;base64,{{ chart_search }}" alt="搜索性能图">
</div>
<div class="chart-card" style="grid-column: 1 / -1;">
<h3>🛡️ 三色审计 · 质量报告</h3>
<img src="data:image/png;base64,{{ chart_audit }}" alt="三色审计图" style="max-width:650px;">
</div>
</div>
<!-- 节点列表 -->
<div class="section-title">🔗 蚁群节点 · 触角矩阵 ({{ node_count }} 节点)</div>
<div class="node-grid">
{% for nid, node in nodes.items() %}
<div class="node-card {{ node.type }}">
<div class="status-dot"></div>
<div class="name">{{ node.name }}</div>
<span class="type-tag {{ node.type }}">
{% if node.type == 'domestic' %}🇨🇳 国产
{% elif node.type == 'open_source' %}📖 开源
{% else %}💻 本地{% endif %}
</span>
<div class="desc">{{ node.desc }}</div>
</div>
{% endfor %}
</div>
<!-- API端点 -->
<div class="section-title">🔌 API 端点</div>
<div class="api-grid">
<div class="api-card">
<span class="method get">GET</span>
<div class="endpoint">/api/status</div>
<div class="api-desc">系统状态 · 节点心跳 · 完整JSON</div>
</div>
<div class="api-card">
<span class="method get">GET</span>
<div class="endpoint">/api/search?q=关键词</div>
<div class="api-desc">全球搜索 · 5人格 × 4引擎</div>
</div>
<div class="api-card">
<span class="method get">GET</span>
<div class="endpoint">/api/charts/pie</div>
<div class="api-desc">节点分布饼图 (PNG)</div>
</div>
<div class="api-card">
<span class="method get">GET</span>
<div class="endpoint">/api/charts/search</div>
<div class="api-desc">搜索性能矩阵图 (PNG)</div>
</div>
</div>
</div>
<div class="footer">
<p>🐉 龍魂系统 v{{ version }} · 开源贡献 · 数据主权在中国</p>
<p>
<a href="https://github.com/UID9622/longhun-system" target="_blank">GitHub</a> ·
<a href="https://gitee.com/UID9622/longhun-system" target="_blank">Gitee</a> ·
<a href="https://gitcode.com/UID9622/longhun-system" target="_blank">GitCode</a>
</p>
<p style="margin-top:10px;">DNA: {{ dna }}</p>
</div>
</body>
</html>'''
# ═══════════════════════════════════════════
# Flask 应用
# ═══════════════════════════════════════════
app = Flask(__name__)
@app.route('/')
def index():
"""主页 · 监控面板"""
return render_template_string(
HTML,
dna=DNA,
uid=UID,
version=VERSION,
port=PORT,
timestamp=time.strftime("%Y-%m-%d %H:%M:%S"),
nodes=NODES,
node_count=len(NODES),
chart_pie=chart_node_types(),
chart_search=chart_search_performance(),
chart_audit=chart_audit_status(),
)
@app.route('/api/status')
def api_status():
"""系统状态API · JSON"""
return jsonify({
"protocol": "longhun-v2",
"dna": DNA,
"uid": UID,
"version": VERSION,
"timestamp": time.time(),
"timestamp_human": time.strftime("%Y-%m-%d %H:%M:%S"),
"nodes": {
nid: {
"name": n["name"],
"type": n["type"],
"status": n["status"],
"desc": n["desc"],
}
for nid, n in NODES.items()
},
"node_count": len(NODES),
"type_distribution": {
"domestic": sum(1 for n in NODES.values() if n["type"] == "domestic"),
"open_source": sum(1 for n in NODES.values() if n["type"] == "open_source"),
"local": sum(1 for n in NODES.values() if n["type"] == "local"),
},
})
@app.route('/api/search')
def api_search():
"""搜索API · 占位(接入全球搜索引擎后自动升级)"""
query = request.args.get('q', '')
return jsonify({
"query": query,
"engine": "global_search_v2",
"personas": ["military", "history", "philosophy", "economy", "political"],
"results": [],
"dna": DNA,
"note": "接入 lh_global_search_v2.py 后自动激活",
})
@app.route('/api/charts/pie')
def api_chart_pie():
"""独立饼图API"""
from flask import Response
fig_b64 = chart_node_types()
img = base64.b64decode(fig_b64)
return Response(img, mimetype='image/png')
@app.route('/api/charts/search')
def api_chart_search():
"""独立搜索性能图API"""
from flask import Response
fig_b64 = chart_search_performance()
img = base64.b64decode(fig_b64)
return Response(img, mimetype='image/png')
# ═══════════════════════════════════════════
# 启动
# ═══════════════════════════════════════════
if __name__ == '__main__':
print(f"""
╔══════════════════════════════════════════╗
║ ║
║ 🐉 龍魂系统 · 核心模板 v{VERSION} ║
║ ║
║ DNA: {DNA[:40]}... ║
║ UID: {UID} ║
║ ║
║ 📡 监控面板: http://localhost:{PORT} ║
║ 📊 API状态: http://localhost:{PORT}/api/status ║
║ 🔍 搜索API: http://localhost:{PORT}/api/search?q=关键词 ║
║ ║
║ 数据主权在中国 · 技术为人民服务 ║
║ ║
╚══════════════════════════════════════════╝
""")
app.run(host='0.0.0.0', port=PORT, debug=True)
▶️ 第四步:启动!看到监控面板
# 确保在虚拟环境中
# Mac/Linux: source venv/bin/activate
# Windows: venv\Scripts\activate
# 启动
python longhun-core.py
看到这个就成功了:
╔══════════════════════════════════════════╗
║ 🐉 龍魂系统 · 核心模板 v2.0 ║
║ 📡 监控面板: http://localhost:9622 ║
║ 📊 API状态: http://localhost:9622/api/status ║
║ 数据主权在中国 · 技术为人民服务 ║
╚══════════════════════════════════════════╝
打开浏览器访问:
http://localhost:9622
你会看到:
- 🎨 暗色龍魂主题监控面板
- 📊 3张自动生成的图表(饼图 + 柱状图 + 横向审计图)
- 🔗 10个蚁群节点卡片(国产/开源/本地)
- 🔌 4个API端点可直接调用
- 📋 快速开始步骤内嵌在面板里
🧪 第五步:验证一切正常
终端验证
# 新开一个终端窗口,测试API
curl http://localhost:9622/api/status | python3 -m json.tool
预期输出:
{
"protocol": "longhun-v2",
"dna": "ZHUGEXIN⚡️2025-🇨🇳🐉⚖️♠️🧚🏼♀️❤️♾️",
"uid": "9622",
"version": "v2.0",
"node_count": 10,
"type_distribution": {
"domestic": 6,
"open_source": 3,
"local": 1
}
}
测试搜索API
curl "http://localhost:9622/api/search?q=龍魂"
直接看图表
浏览器打开:
http://localhost:9622/api/charts/pie→ 饼图http://localhost:9622/api/charts/search→ 性能矩阵图
📁 文件清单
| 文件 | 大小 | 说明 |
|---|---|---|
longhun-core.py | ~280行 | 核心模板 · 复制粘贴即用 |
| 自动生成图表 | 3张 | 饼图+柱状图+审计图 · 启动即看 |
| Web面板 | 1个 | 暗色龍魂主题 · http://localhost:9622 |
| API端点 | 4个 | JSON状态/搜索/图表独立输出 |
🎯 接下来可以做什么
1. 接入真正的搜索引擎
# 复制全球搜索引擎到项目
cp bin/lh_global_search_v2.py ~/longhun-system/
# 在 longhun-core.py 中导入
# from lh_global_search_v2 import LongHunGlobalSearch
# 替换 /api/search 中的占位逻辑
2. 接入CNSH编译器
cp bin/lh_cnsh_compiler.py ~/longhun-system/
# 添加 /api/cnsh/compile 端点
3. 注册DNA身份
python3 bin/lh_unified_dna_registry.py register uid9622 gpg "你的GPG指纹" "主密钥"
python3 bin/lh_ecosystem_passport.py passport create uid9622
4. 完整部署到服务器
参考完整部署教程:docs/手把手部署教程-API联动-DNA注册.md
🆘 遇到问题?
| 问题 | 解决 |
|---|---|
python: command not found | 没装Python或没加PATH,回第一步重装 |
ModuleNotFoundError: flask | 没装依赖,运行 pip install flask matplotlib numpy |
port 9622 already in use | 改 longhun-core.py 里的 PORT = 9622 为其他端口 |
| 图表不显示 | matplotlib版本问题,pip install --upgrade matplotlib |
| Windows PowerShell 禁止执行脚本 | Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser |
📞 身份认证
UID: 9622
DNA: ZHUGEXIN⚡️2025-🇨🇳🐉⚖️♠️🧚🏼♀️❤️♾️
CONFIRM: #CONFIRM🌌9622-ONLY-ONCE🧬LK9X-772Z
GPG: A2D0092CEE2E5BA87035600924C3704A8CC26D5F
🐉 一句话总结
复制 longhun-core.py → pip install → python 启动 → 浏览器打开 9622 → 图表自动生成 → 5分钟跑起来。
DNA: #龍芯⚡️丙午·辛未·TUTORIAL-v2.0
创建者: 💎 龍芯北辰 | UID9622
状态: 🟢 生效
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)