123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- """
- DataOps-platform 项目启动脚本
- """
- import os
- import sys
- import subprocess
- import platform
- def check_python_version():
- """检查Python版本"""
- if sys.version_info < (3, 8):
- print("错误: 需要Python 3.8或更高版本")
- print(f"当前版本: {sys.version}")
- return False
- print(f"Python版本: {sys.version}")
- return True
- def create_virtual_env():
- """创建虚拟环境"""
- if not os.path.exists("venv"):
- print("创建虚拟环境...")
- try:
- subprocess.run([sys.executable, "-m", "venv", "venv"], check=True)
- print("虚拟环境创建成功")
- except subprocess.CalledProcessError:
- print("错误: 创建虚拟环境失败")
- return False
- else:
- print("虚拟环境已存在")
- return True
- def activate_virtual_env():
- """激活虚拟环境"""
- if platform.system() == "Windows":
- activate_script = os.path.join("venv", "Scripts", "activate.bat")
- if os.path.exists(activate_script):
- print("激活虚拟环境...")
- # 在Windows上,我们需要使用cmd来运行activate.bat
- os.system(f'cmd /c "{activate_script} && pip install -r requirements.txt"')
- else:
- print("错误: 虚拟环境激活脚本未找到")
- return False
- else:
- activate_script = os.path.join("venv", "bin", "activate")
- if os.path.exists(activate_script):
- print("激活虚拟环境...")
- os.system(f"source {activate_script} && pip install -r requirements.txt")
- else:
- print("错误: 虚拟环境激活脚本未找到")
- return False
- return True
- def install_dependencies():
- """安装项目依赖"""
- print("安装项目依赖...")
- try:
- if platform.system() == "Windows":
- subprocess.run([os.path.join("venv", "Scripts", "python.exe"), "-m", "pip", "install", "-r", "requirements.txt"], check=True)
- else:
- subprocess.run([os.path.join("venv", "bin", "python"), "-m", "pip", "install", "-r", "requirements.txt"], check=True)
- print("依赖安装成功")
- return True
- except subprocess.CalledProcessError:
- print("错误: 依赖安装失败")
- return False
- def set_environment_variables():
- """设置环境变量"""
- os.environ["FLASK_ENV"] = "development"
- os.environ["FLASK_APP"] = "application.py"
- os.environ["FLASK_DEBUG"] = "1"
- print("环境变量设置完成")
- def run_application():
- """运行应用"""
- print("启动DataOps-platform...")
- print("访问地址: http://localhost:5500")
- print("按 Ctrl+C 停止应用")
- print("-" * 50)
-
- try:
- if platform.system() == "Windows":
- subprocess.run([os.path.join("venv", "Scripts", "python.exe"), "application.py"])
- else:
- subprocess.run([os.path.join("venv", "bin", "python"), "application.py"])
- except KeyboardInterrupt:
- print("\n应用已停止")
- except Exception as e:
- print(f"启动应用时出错: {e}")
- def main():
- """主函数"""
- print("=" * 50)
- print("DataOps-platform 项目启动器")
- print("=" * 50)
-
- # 检查Python版本
- if not check_python_version():
- return
-
- # 创建虚拟环境
- if not create_virtual_env():
- return
-
- # 安装依赖
- if not install_dependencies():
- return
-
- # 设置环境变量
- set_environment_variables()
-
- # 运行应用
- run_application()
- if __name__ == "__main__":
- main()
|