PCM_Report/test_client_environment.py

148 lines
3.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#!/usr/bin/env python3
"""
测试客户机器环境和依赖包
"""
import sys
import os
from pathlib import Path
def test_python_version():
"""测试Python版本"""
print(f"Python版本: {sys.version}")
print(f"Python路径: {sys.executable}")
def test_influxdb_client():
"""测试InfluxDB客户端"""
try:
import influxdb_client
print(f"✓ influxdb_client 已安装,版本: {influxdb_client.__version__}")
return True
except ImportError as e:
print(f"✗ influxdb_client 未安装: {e}")
return False
def test_pandas():
"""测试pandas"""
try:
import pandas as pd
print(f"✓ pandas 已安装,版本: {pd.__version__}")
return True
except ImportError as e:
print(f"✗ pandas 未安装: {e}")
return False
def test_other_dependencies():
"""测试其他依赖"""
dependencies = [
'json',
'datetime',
'logging',
'os',
'sys'
]
for dep in dependencies:
try:
__import__(dep)
print(f"{dep} 可用")
except ImportError as e:
print(f"{dep} 不可用: {e}")
def test_environment_variables():
"""测试环境变量"""
required_vars = [
'INFLUX_URL',
'INFLUX_ORG',
'INFLUX_TOKEN',
'INFLUX_BUCKET',
'INFLUX_MEASUREMENT',
'EXPERIMENT_START',
'EXPERIMENT_END'
]
print("\n环境变量检查:")
all_set = True
for var in required_vars:
value = os.environ.get(var)
if value:
# 隐藏敏感信息
if 'TOKEN' in var and len(value) > 8:
display_value = f"{value[:4]}****"
else:
display_value = value
print(f"{var} = {display_value}")
else:
print(f"{var} 未设置")
all_set = False
return all_set
def create_mock_temperature_data():
"""创建模拟温度数据用于测试"""
mock_data = {
"tables": [{
"token": "scriptTable1",
"startRow": 0,
"startCol": 0,
"cells": [
{"row": 1, "col": 1, "value": "2025-11-27 11:30:00"},
{"row": 1, "col": 3, "value": "2025-11-27 15:00:00"},
{"row": 0, "col": 1, "value": "25.5"}, # 模拟环境温度
{"row": 4, "col": 0, "value": "45.2"}, # 模拟主轴承温度
{"row": 4, "col": 1, "value": "46.1"},
{"row": 5, "col": 0, "value": "44.8"},
]
}]
}
import json
print("\n模拟数据 (用于测试报告生成):")
print(json.dumps(mock_data, ensure_ascii=False, indent=2))
return mock_data
def main():
print("客户机器环境测试")
print("=" * 50)
# 测试Python环境
test_python_version()
print()
# 测试依赖包
print("依赖包检查:")
influx_ok = test_influxdb_client()
pandas_ok = test_pandas()
test_other_dependencies()
print()
# 测试环境变量
env_ok = test_environment_variables()
print()
# 创建模拟数据
mock_data = create_mock_temperature_data()
# 总结
print("\n" + "=" * 50)
print("总结:")
if not influx_ok:
print("❌ 需要安装 influxdb-client:")
print(" pip install influxdb-client==1.43.0")
if not pandas_ok:
print("❌ 需要安装 pandas:")
print(" pip install pandas")
if not env_ok:
print("❌ 需要设置所有必需的环境变量")
if influx_ok and pandas_ok and env_ok:
print("✅ 环境配置正确可以运行temperature_table.py")
else:
print("⚠️ 环境配置不完整,但可以使用模拟数据测试报告生成")
if __name__ == "__main__":
main()