#!/usr/bin/env python # -*- coding: utf-8 -*- """ 水质参数反演分析系统 - 安装配置 """ from setuptools import setup, find_packages import os # 读取README文件 def read_readme(): readme_path = os.path.join(os.path.dirname(__file__), 'README.md') if os.path.exists(readme_path): with open(readme_path, 'r', encoding='utf-8') as f: return f.read() return "" # 读取requirements.txt def read_requirements(): requirements_path = os.path.join(os.path.dirname(__file__), 'requirements.txt') if os.path.exists(requirements_path): with open(requirements_path, 'r', encoding='utf-8') as f: return [line.strip() for line in f if line.strip() and not line.startswith('#')] return [] setup( name="water-quality-inversion", version="1.0.0", author="Water Quality Research Team", author_email="support@waterquality.com", description="水质参数反演分析系统 - 基于遥感影像和机器学习的水质监测专业软件", long_description=read_readme(), long_description_content_type="text/markdown", url="https://github.com/waterquality/water-quality-inversion", packages=find_packages(where="src"), package_dir={"": "src"}, classifiers=[ "Development Status :: 4 - Beta", "Intended Audience :: Science/Research", "Topic :: Scientific/Engineering :: GIS", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", ], keywords="water quality remote sensing machine learning GIS", python_requires=">=3.8", install_requires=read_requirements(), extras_require={ "dev": [ "pytest>=6.0", "pytest-cov>=2.0", "black>=21.0", "flake8>=3.9", "mypy>=0.900", ], "gui": [ "PyQt5>=5.15", "matplotlib>=3.5", ], "packaging": [ "pyinstaller>=5.0", "py2exe>=0.12", ], }, entry_points={ "console_scripts": [ "water-quality-gui=gui.water_quality_gui:main", "water-quality-pipeline=core.water_quality_inversion_pipeline:main", ], }, include_package_data=True, package_data={ "": [ "data/icons/*.png", "data/sub/**/*", ], }, zip_safe=False, )