79 lines
2.7 KiB
Python
79 lines
2.7 KiB
Python
#!/usr/bin/env python
|
||
# -*- coding: utf-8 -*-
|
||
|
||
"""
|
||
ArcGIS Pro批量处理工具 - GUI应用程序入口点
|
||
"""
|
||
|
||
import sys
|
||
import os
|
||
import traceback
|
||
|
||
def main():
|
||
"""主函数,启动GUI应用程序"""
|
||
try:
|
||
from PyQt6.QtWidgets import QApplication
|
||
print("PyQt6导入成功")
|
||
|
||
# 添加项目路径到sys.path
|
||
project_root = os.path.dirname(os.path.abspath(__file__))
|
||
if project_root not in sys.path:
|
||
sys.path.insert(0, project_root)
|
||
print(f"添加项目路径到sys.path: {project_root}")
|
||
|
||
# 使用重构版的MainWindow
|
||
from tools.ui.main_window import MainWindow
|
||
print("MainWindow导入成功")
|
||
|
||
# 查找并设置ArcGIS Pro的Python环境
|
||
try:
|
||
# 常见的ArcGIS Pro Python路径
|
||
arcgis_python_paths = [
|
||
r"C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\python.exe",
|
||
r"C:\Program Files\ArcGIS\Pro\bin\Python\python.exe"
|
||
]
|
||
|
||
# 检查环境变量
|
||
if 'ARCGISPRO_PYTHON' in os.environ:
|
||
arcgis_python_paths.insert(0, os.environ['ARCGISPRO_PYTHON'])
|
||
|
||
# 尝试每个可能的路径
|
||
for path in arcgis_python_paths:
|
||
if os.path.exists(path):
|
||
os.environ['ARCGISPRO_PYTHON'] = path
|
||
print(f"设置ArcGIS Pro Python环境: {path}")
|
||
break
|
||
except Exception as e:
|
||
print(f"设置Python环境失败: {str(e)}")
|
||
|
||
# 验证脚本目录
|
||
core_script_dir = os.path.join(project_root, 'tools', 'core')
|
||
if os.path.exists(core_script_dir):
|
||
print(f"核心脚本目录存在: {core_script_dir}")
|
||
script_files = [f for f in os.listdir(core_script_dir) if f.endswith('.py')]
|
||
print(f"发现脚本文件: {', '.join(script_files)}")
|
||
else:
|
||
print(f"警告: 核心脚本目录不存在: {core_script_dir}")
|
||
# 尝试创建核心脚本目录
|
||
os.makedirs(core_script_dir, exist_ok=True)
|
||
print(f"已创建核心脚本目录: {core_script_dir}")
|
||
|
||
# 启动GUI
|
||
app = QApplication(sys.argv)
|
||
# 设置应用程序样式
|
||
# app.setStyle("Fusion")
|
||
window = MainWindow()
|
||
print("MainWindow实例创建成功")
|
||
|
||
window.show()
|
||
print("窗口显示成功")
|
||
|
||
sys.exit(app.exec())
|
||
except Exception as e:
|
||
print(f"错误: {e}")
|
||
print("详细错误信息:")
|
||
traceback.print_exc()
|
||
sys.exit(1)
|
||
|
||
if __name__ == "__main__":
|
||
main() |