Global
GetOS - 获取操作系统信息
获取当前运行环境的操作系统和架构信息。
语法
python
os_info = GetOS()参数
无参数。
返回值
返回操作系统信息字符串(str),格式为 "系统/架构"。
可能的返回值
| 返回值 | 说明 |
|---|---|
linux/amd64 | Linux 系统,AMD64/x86_64 架构 |
linux/arm64 | Linux 系统,ARM64 架构 |
darwin/amd64 | macOS 系统,Intel 架构 |
darwin/arm64 | macOS 系统,Apple Silicon(M1/M2)架构 |
windows/amd64 | Windows 系统,64位 |
windows/386 | Windows 系统,32位 |
示例
示例1: 获取系统信息
python
# 获取操作系统信息
os_info = GetOS()
Log(f"当前系统: {os_info}")
# 输出示例: darwin/arm64示例2: 根据系统调整配置
python
os_info = GetOS()
if "linux" in os_info:
Log("运行在 Linux 系统")
# Linux 特定配置
config = {"use_systemd": True}
elif "darwin" in os_info:
Log("运行在 macOS 系统")
# macOS 特定配置
config = {"use_launchd": True}
elif "windows" in os_info:
Log("运行在 Windows 系统")
# Windows 特定配置
config = {"use_service": True}示例3: 检测架构
python
os_info = GetOS()
if "arm64" in os_info:
Log("运行在 ARM64 架构(Apple Silicon 或 ARM 服务器)")
# 针对 ARM 架构的优化
elif "amd64" in os_info or "x86_64" in os_info:
Log("运行在 x86_64 架构")
# 针对 x86 架构的优化示例4: 记录环境信息
python
# 策略启动时记录完整环境信息
Log(f"========== 策略环境信息 ==========")
Log(f"操作系统: {GetOS()}")
Log(f"实盘ID: {real_trade_id}")
Log(f"策略ID: {strategy_id}")
Log(f"是否回测: {IsVirtual()}")
Log(f"启动时间: {_D()}")
Log(f"===================================")示例5: 条件编译式执行
python
os_info = GetOS()
# 某些功能只在特定平台可用
if "linux" in os_info:
# Linux 专有功能
try:
import psutil
cpu_percent = psutil.cpu_percent(interval=1)
Log(f"CPU 使用率: {cpu_percent}%")
except ImportError:
Log("psutil 库未安装")
else:
Log(f"此功能仅在 Linux 系统可用,当前系统: {os_info}")示例6: 平台兼容性检查
python
def check_platform_compatibility():
"""检查当前平台是否支持策略所需功能"""
os_info = GetOS()
supported_platforms = ["linux/amd64", "darwin/arm64", "darwin/amd64"]
if os_info in supported_platforms:
Log(f"✅ 当前平台 {os_info} 已支持")
return True
else:
Log(f"⚠️ 警告: 当前平台 {os_info} 未经过充分测试", level="WARNING")
return False
# 策略启动时检查
if not check_platform_compatibility():
Log("策略可能在当前平台上运行不稳定", level="WARNING")示例7: 诊断信息收集
python
def collect_diagnostic_info():
"""收集完整的诊断信息"""
import sys
import platform
info = {
"os": GetOS(),
"python_version": sys.version,
"platform": platform.platform(),
"machine": platform.machine(),
"processor": platform.processor(),
"is_virtual": IsVirtual(),
"timestamp": _D()
}
Log("========== 诊断信息 ==========")
for key, value in info.items():
Log(f"{key}: {value}")
Log("================================")
return info
# 发生错误时收集诊断信息
try:
# 策略代码...
pass
except Exception as e:
LogError(f"策略异常: {e}", exception=e)
collect_diagnostic_info()注意事项
-
格式固定: 返回格式固定为
"系统/架构"的小写字符串 -
系统名称映射:
- Linux →
linux - macOS →
darwin - Windows →
windows
- Linux →
-
架构名称:
- AMD64/x86_64 →
amd64 - ARM64/aarch64 →
arm64 - x86 →
386
- AMD64/x86_64 →
-
不包含版本号: 仅返回系统类型和架构,不包含具体版本号
-
运行时环境: 返回的是策略运行时的系统信息,而非策略编写时的系统