fix(start_recommendations): 优化虚拟环境激活逻辑
更新 `start_recommendations.sh` 脚本,优先使用 `trading_system/.venv` 激活虚拟环境,确保与服务器部署一致。增强错误提示信息,提升用户体验与环境配置的准确性。
This commit is contained in:
parent
4479c4f02d
commit
4ccf067b24
|
|
@ -1357,7 +1357,7 @@ async def backend_stop(_admin: Dict[str, Any] = Depends(require_system_admin)) -
|
||||||
def _recommendations_process_running() -> Tuple[bool, Optional[int]]:
|
def _recommendations_process_running() -> Tuple[bool, Optional[int]]:
|
||||||
"""检查推荐服务进程是否运行,返回 (running, pid)。兼容 pgrep/ps 及 supervisor 等启动方式。"""
|
"""检查推荐服务进程是否运行,返回 (running, pid)。兼容 pgrep/ps 及 supervisor 等启动方式。"""
|
||||||
# 1. 优先 pgrep(Linux/macOS 常见)
|
# 1. 优先 pgrep(Linux/macOS 常见)
|
||||||
for pattern in ["trading_system.recommendations_main", "recommendations_main"]:
|
for pattern in ["trading_system.recommendations_main", "recommendations_main1", "recommendations_main"]:
|
||||||
try:
|
try:
|
||||||
result = subprocess.run(
|
result = subprocess.run(
|
||||||
["pgrep", "-f", pattern],
|
["pgrep", "-f", pattern],
|
||||||
|
|
@ -1375,7 +1375,7 @@ def _recommendations_process_running() -> Tuple[bool, Optional[int]]:
|
||||||
# 2. 回退:ps + grep(pgrep 不可用或匹配失败时)
|
# 2. 回退:ps + grep(pgrep 不可用或匹配失败时)
|
||||||
try:
|
try:
|
||||||
result = subprocess.run(
|
result = subprocess.run(
|
||||||
["sh", "-c", "ps aux 2>/dev/null | grep -E 'recommendations_main|trading_system.recommendations' | grep -v grep | head -1"],
|
["sh", "-c", "ps aux 2>/dev/null | grep -E 'recommendations_main1|recommendations_main|trading_system.recommendations' | grep -v grep | head -1"],
|
||||||
capture_output=True,
|
capture_output=True,
|
||||||
text=True,
|
text=True,
|
||||||
timeout=5,
|
timeout=5,
|
||||||
|
|
|
||||||
|
|
@ -1,21 +1,25 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# 启动推荐服务(recommendations_main)
|
# 启动推荐服务(recommendations_main)
|
||||||
# 参考 backend/start.sh,使用相同 venv 与项目根目录
|
# 优先使用 trading_system/.venv(与服务器实际部署一致),其次 backend/.venv
|
||||||
|
|
||||||
cd "$(dirname "$0")"
|
cd "$(dirname "$0")"
|
||||||
|
BACKEND_DIR="$(pwd)"
|
||||||
PROJECT_ROOT="$(cd .. && pwd)"
|
PROJECT_ROOT="$(cd .. && pwd)"
|
||||||
|
TRADING_VENV="${PROJECT_ROOT}/trading_system/.venv"
|
||||||
|
|
||||||
# 激活虚拟环境(与 backend/start.sh 一致)
|
# 激活虚拟环境:优先 trading_system/.venv,其次 backend 下
|
||||||
if [ -d ".venv" ]; then
|
if [ -d "${TRADING_VENV}" ]; then
|
||||||
|
source "${TRADING_VENV}/bin/activate"
|
||||||
|
elif [ -d ".venv" ]; then
|
||||||
source .venv/bin/activate
|
source .venv/bin/activate
|
||||||
elif [ -d "../.venv" ]; then
|
elif [ -d "../.venv" ]; then
|
||||||
source ../.venv/bin/activate
|
source ../.venv/bin/activate
|
||||||
else
|
else
|
||||||
echo "错误: 找不到虚拟环境(.venv 或 ../.venv)"
|
echo "错误: 找不到虚拟环境(trading_system/.venv、.venv 或 ../.venv)"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 设置环境变量(与 backend/start.sh 类似)
|
# 设置环境变量
|
||||||
export PYTHONPATH="${PROJECT_ROOT}"
|
export PYTHONPATH="${PROJECT_ROOT}"
|
||||||
export DB_HOST=${DB_HOST:-localhost}
|
export DB_HOST=${DB_HOST:-localhost}
|
||||||
export DB_PORT=${DB_PORT:-3306}
|
export DB_PORT=${DB_PORT:-3306}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user