Use uv for Python environment

This commit is contained in:
2026-06-19 18:54:46 +08:00
parent 7083c45feb
commit 87060e30d4
17 changed files with 444 additions and 69 deletions
+4 -2
View File
@@ -15,7 +15,9 @@ from flask import Flask, Response, jsonify
from werkzeug.serving import make_server
# 添加当前目录到路径
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
sys.path.insert(0, BASE_DIR)
LOG_FILE = os.environ.get("ARM_SERVER_LOG_FILE", os.path.join(BASE_DIR, "server.log"))
# 配置日志
logging.basicConfig(
@@ -23,7 +25,7 @@ logging.basicConfig(
format="%(asctime)s [%(levelname)s] %(name)s: %(message)s",
handlers=[
logging.StreamHandler(),
logging.FileHandler(os.path.expanduser("~/work/arm_server/server.log"))
logging.FileHandler(LOG_FILE)
]
)
logger = logging.getLogger("arm_server")
+5 -4
View File
@@ -6,13 +6,14 @@ Wants=network-online.target
[Service]
Type=simple
User=pi
WorkingDirectory=/home/pi/work/arm_server
WorkingDirectory=/home/pi/work/smart-inspection/arm_server
Environment=PATH=/home/pi/.local/bin:/usr/local/bin:/usr/bin:/bin
ExecStartPre=/bin/sleep 5
ExecStart=/usr/bin/python3 /home/pi/work/arm_server/arm_server.py
ExecStart=/usr/bin/env uv run --locked python arm_server.py
Restart=on-failure
RestartSec=5
StandardOutput=append:/home/pi/work/arm_server/stdout.log
StandardError=append:/home/pi/work/arm_server/stderr.log
StandardOutput=append:/home/pi/work/smart-inspection/arm_server/stdout.log
StandardError=append:/home/pi/work/smart-inspection/arm_server/stderr.log
[Install]
WantedBy=multi-user.target
-3
View File
@@ -1,3 +0,0 @@
# 机械臂端依赖(最少依赖)
# RoboFlow 已在树莓派上运行,此端仅做透传
flask>=1.0,<2.3
+6 -8
View File
@@ -1,12 +1,10 @@
#!/bin/bash
# 启动机械臂服务端
set -e
cd ~/work/arm_server
PYTHON_BIN="${PYTHON_BIN:-/usr/bin/python3}"
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
ARM_SERVER_DIR="${ARM_SERVER_DIR:-$PROJECT_DIR/arm_server}"
if ! "$PYTHON_BIN" -c "import flask" >/dev/null 2>&1; then
echo "Flask 未安装,正在安装 requirements.txt..."
"$PYTHON_BIN" -m pip install --user -r requirements.txt
fi
exec "$PYTHON_BIN" arm_server.py
cd "$ARM_SERVER_DIR"
exec uv run --locked python arm_server.py