# 开发环境(默认) [envs.default] type = "virtual" dependencies = [ "rocketmq-client-python", "simpleeval", "influxdb-client", "flask>=3.1.0", "apiflask>=2.4.0", "flask-cors>=6.0.0", "flask-sqlalchemy>=3.1.0", "SQLAlchemy>=2.0.0", "flask-migrate>=4.1.0", "flask-marshmallow>=1.3.0", "Flask-JWT-Extended>=4.7.0", "Flask-Limiter>=4.0.0", "flask-moment>=1.0.0", "Flask-Caching>=2.3.0", "validators>=0.35.0", "marshmallow>=4.0.0", "marshmallow-sqlalchemy>=1.4.0", "marshmallow-dataclass>=8.7.0", "watchdog>=6.0.0", "Werkzeug>=3.1.0", "importlib-metadata>=8.7.0", "PyMySQL>=1.1.0", "python-dotenv>=1.0.0", "mypy>=1.0.0", "Pillow>=12.0.0", "pandas>=2.3.3", "openpyxl>=3.1.5", # 阿里云OSS "oss2>=2.19.1", # 腾讯云COS "cos-python-sdk-v5>=1.9.38", # 七牛云Kodo "qiniu>=7.17.0", # 华为云OBS "esdk-obs-python>=3.25.8", # AWS S3 "boto3>=1.40.62", # MinIO "minio>=7.2.18", # 测试 "pytest>=7.0.0", "pytest-cov>=4.0.0", "pytest-mock>=3.0.0", "pytest-asyncio>=0.21.0", ] [envs.default.env-vars] FLASK_ENV = "dev" [envs.default.scripts] # 开发环境启动 dev = "python -m flask --app iti/app.py run --debug" # db db = "python -m flask --app iti/app.py db {args}" # 类型检查 check = "mypy --install-types --non-interactive {args:iti tests}" # 运行测试 test = "pytest {args:tests}" # 带覆盖率的测试 cov = "pytest --cov=iti --cov-report=html {args:tests}" # 测试环境 [envs.test] type = "virtual" dependencies = [ "flask>=3.1.0", "apiflask>=2.4.0", "flask-cors>=6.0.0", "flask-sqlalchemy>=3.1.0", "SQLAlchemy>=2.0.0", "flask-migrate>=4.1.0", "flask-marshmallow>=1.3.0", "Flask-JWT-Extended>=4.7.0", "Flask-Limiter>=4.0.0", "flask-moment>=1.0.0", "Flask-Caching>=2.3.0", "validators>=0.35.0", "marshmallow>=4.0.0", "marshmallow-sqlalchemy>=1.4.0", "marshmallow-dataclass>=8.7.0", "Pillow>=12.0.0", "pandas>=2.3.3", "openpyxl>=3.1.5", # 阿里云OSS "oss2>=2.19.1", # 腾讯云COS "cos-python-sdk-v5>=1.9.38", # 七牛云Kodo "qiniu>=7.17.0", # 华为云OBS "esdk-obs-python>=3.25.8", # AWS S3 "boto3>=1.40.62", # MinIO "minio>=7.2.18", # 测试 "pytest>=7.0.0", "pytest-cov>=4.0.0", "pytest-mock>=3.0.0", ] [envs.test.env-vars] FLASK_ENV = "test" [envs.test.scripts] test = "pytest {args:tests}" cov = "pytest --cov=iti --cov-report=html --cov-report=term {args:tests}" # 生产环境 [envs.prod] type = "virtual" python = ">=3.11" dependencies = [ "flask>=3.1.0", "apiflask>=2.4.0", "flask-cors>=6.0.0", "flask-sqlalchemy>=3.1.0", "SQLAlchemy>=2.0.0", "flask-migrate>=4.1.0", "flask-marshmallow>=1.3.0", "Flask-JWT-Extended>=4.7.0", "Flask-Limiter>=4.0.0", "flask-moment>=1.0.0", "Flask-Caching>=2.3.0", "validators>=0.35.0", "marshmallow>=4.0.0", "marshmallow-sqlalchemy>=1.4.0", "marshmallow-dataclass>=8.7.0", "Werkzeug>=3.1.0", "importlib-metadata>=8.7.0", "PyMySQL>=1.1.0", "python-dotenv>=1.0.0", "waitress>=2.1.0", # 跨平台生产服务器(支持 Windows) "Pillow>=12.0.0", "pandas>=2.3.3", "openpyxl>=3.1.5", # 阿里云OSS "oss2>=2.19.1", # 腾讯云COS # "cos-python-sdk-v5>=1.9.38", # 七牛云Kodo # "qiniu>=7.17.0", # 华为云OBS # "esdk-obs-python>=3.25.8", # AWS S3 # "boto3>=1.40.62", # MinIO # "minio>=7.2.18", ] [envs.prod.env-vars] FLASK_ENV = "prod" [envs.prod.scripts] # 生产环境启动(使用 Waitress,支持 Windows) prod = "waitress-serve --host=0.0.0.0 --port=8000 --threads=4 app:app" # Linux 环境可选 Gunicorn(需手动安装:pip install gunicorn) # start-gunicorn = "gunicorn -w 4 -b 0.0.0.0:8000 'app:app'"