Files
sunvpy-docs/docs/content/2-an-zhuang-yu-huan-jing-pei-zhi.md
2026-04-10 13:47:53 +08:00

11 KiB
Raw Blame History

本页面介绍 sunvpy Python 库的安装流程、环境配置要求以及验证方法。sunvpy 是 SunvStation 地理信息系统的官方 Python 脚本接口,通过 SWIG 技术将 C++ 核心功能封装为 Python 模块,为开发者提供高效的二次开发和自动化数据处理能力。

Sources: init.py

系统要求

使用 sunvpy 库需要满足以下软硬件环境要求。下表详细列出了各项配置要求和建议。

配置项 最低要求 推荐配置 说明
操作系统 Windows 7/8.1/10 Windows 10/11 sunvpy 目前仅支持 Windows 平台
Python 版本 Python 3.8+ Python 3.10 - 3.13 需要与 SunvStation 版本匹配的 Python 版本
SunvStation SunvStation 10.0+ 最新稳定版 SunvStation 软件本体必须已正确安装
磁盘空间 100 MB 200 MB+ 包含 sunvpy 模块及其依赖库
内存 2 GB RAM 4 GB RAM+ 处理大规模数据集时需要更多内存
架构 x86-64 x86-64 仅支持 64 位操作系统和 Python

Python 版本的选择尤为重要,因为 sunvpy 中的 .pyd 扩展模块是编译好的二进制文件,必须与 Python 解释器的版本和位数完全匹配。错误的环境配置会导致模块加载失败。

Sources: PySSCore.py

安装方法

sunvpy 通常作为 SunvStation 安装包的一部分自动安装到 Python 的 site-packages 目录。安装流程可以分为自动安装和手动安装两种方式。

自动安装

自动安装是最推荐的方式,由 SunvStation 安装程序自动完成所有配置工作。

flowchart LR
    A[运行 SunvStation 安装程序] --> B{选择 Python 版本}
    B -->|指定 Python 安装路径| C[安装程序自动检测 Python 环境]
    B -->|使用自带 Python| D[安装程序部署内置 Python 环境]
    C --> E[复制 sunvpy 到 site-packages]
    D --> E
    E --> F[注册环境变量]
    F --> G[创建桌面快捷方式]
    G --> H[完成安装]

在安装 SunvStation 时,安装程序会自动检测系统中的 Python 环境,并提示用户选择使用现有的 Python 解释器还是安装 SunvStation 自带的 Python 版本。安装程序会将 sunvpy 包复制到指定 Python 版本的 Lib\site-packages\sunvpy 目录下。

手动安装

如果需要手动配置 sunvpy 环境,可以按照以下步骤操作。

步骤 操作 详细说明
1 定位安装目录 找到 SunvStation 安装目录下的 script 子目录
2 复制文件 将 sunvpy 整个文件夹复制到 Python 的 site-packages 目录
3 验证依赖 确保所有 .pyd 文件和对应的 .py 文件完整
4 配置环境变量 如有需要,添加相关路径到 PATH 环境变量
5 测试导入 运行 Python 测试导入是否成功

手动安装需要确保所有模块文件完整,包括 Python 封装文件(.py和 C++ 扩展文件(.pyd。缺失任何一个文件都可能导致模块功能异常。

Sources: PySSProcess.py

环境验证

安装完成后,通过以下步骤验证环境配置是否正确。验证过程分为导入测试、功能测试和版本检查三个环节。

导入测试

打开命令行或 Python 解释器,尝试导入 sunvpy 模块。

# 测试基本导入
import sunvpy
print(f"sunvpy 版本: {sunvpy.get_version()}")

# 测试 SSProcess 导入
from sunvpy import SSProcess
print("SSProcess 导入成功")

如果导入成功且没有报错,说明基本环境配置正确。如果出现 ModuleNotFoundErrorImportError,请检查 Python 版本匹配和文件完整性。

功能测试

运行一个简单的功能测试脚本,验证核心模块是否正常工作。

flowchart TD
    A[启动功能测试] --> B[导入 SSProcess]
    B --> C{导入成功?}
    C -->|否| D[检查 .pyd 文件完整性]
    C -->|是| E[获取工作空间实例]
    E --> F{工作空间可用?}
    F -->|否| G[检查 SunvStation 许可]
    F -->|是| H[测试地图连接]
    H --> I[输出测试结果]
    D --> J[修复问题后重试]
    G --> J

功能测试脚本可以验证 sunvpy 是否能够正确连接到 SunvStation 的核心服务。测试失败通常意味着 SunvStation 主程序未运行或许可证配置有问题。

版本信息检查

通过版本信息确认安装的 sunvpy 版本,确保与 SunvStation 主程序版本兼容。

# 完整版本检查
import sunvpy

print("=" * 50)
print("sunvpy 环境信息")
print("=" * 50)
print(f"模块版本: {sunvpy.__version__}")
print(f"模块作者: {sunvpy.__author__}")
print(f"模块描述: {sunvpy.__description__}")
print("=" * 50)

# 检查 SSProcess 实例
from sunvpy import SSProcess

print(f"工作空间实例: {SSProcess.getWorkspace()}")
print(f"当前地图实例: {SSProcess.getCurrentMap()}")

Sources: init.py PySSProcess.py

常见问题排查

在安装和使用过程中可能会遇到一些常见问题。下表列出了典型问题及其解决方案。

问题现象 可能原因 解决方案
ImportError: DLL load failed Python 版本与 .pyd 编译版本不匹配 使用与 sunvpy 编译版本相同的 Python 解释器
ModuleNotFoundError: No module named 'sunvpy' sunvpy 未安装到 site-packages 目录 检查安装路径或重新安装 SunvStation
AttributeError: module has no attribute 'SSProcess' PySSProcess.py 文件缺失或损坏 重新复制完整的 sunvpy 文件夹
程序运行时提示"工作空间不可用" SunvStation 主程序未运行或许可证问题 启动 SunvStation 并检查许可证配置
SWIG 扩展模块无法加载 缺少必要的 VC++ 运行库 安装 Microsoft Visual C++ Redistributable
属性访问异常 ObjBaseAttr.py 配置文件损坏 检查或重新安装属性定义文件

调试技巧

当遇到问题时,可以使用以下调试方法定位具体原因。

  1. 检查模块完整性:验证所有必要的文件是否存在
import os
sunvpy_path = os.path.dirname(sunvpy.__file__)
required_files = [
    'PySSCore.py', '_PySSCore.pyd',
    'PySSMap.py', '_PySSMap.pyd',
    'PySSProcess.py', 'ObjBaseAttr.py'
]

for file in required_files:
    full_path = os.path.join(sunvpy_path, file)
    exists = os.path.exists(full_path)
    print(f"{file}: {'✓' if exists else '✗'}")
  1. 检查 Python 环境信息:确认 Python 版本和架构
import sys
print(f"Python 版本: {sys.version}")
print(f"Python 路径: {sys.executable}")
print(f"架构位数: {'64位' if sys.maxsize > 2**32 else '32位'}")
  1. 查看详细错误信息:使用 traceback 模块获取完整堆栈
import traceback
try:
    from sunvpy import SSProcess
except Exception as e:
    traceback.print_exc()

Sources: PySSCore.py init.py

目录结构说明

理解 sunvpy 的目录结构有助于调试问题和学习模块组织方式。下表详细说明了目录中各文件的用途。

文件/目录 类型 说明
__init__.py Python 文件 包初始化文件,定义版本信息和导出接口
PySSProcess.py Python 文件 SSProcessManager 主类实现,提供统一 API 入口
ObjBaseAttr.py Python 文件 地物基本属性名称索引和类型定义
PySS*.py Python 文件 SWIG 生成的 Python 封装文件
_PySS*.pyd 二进制文件 编译好的 C++ 扩展模块
ssprocess_mixins/ 目录 Mixin 功能模块目录
ssprocess_mixins/selection_mixin.py Python 文件 选择集操作功能实现
ssprocess_mixins/geo_edit_mixin.py Python 文件 地理编辑功能实现
ssprocess_mixins/project_mixin.py Python 文件 工程管理功能实现
ssprocess_mixins/log_mixin.py Python 文件 日志记录功能实现
ssprocess_mixins/progress_mixin.py Python 文件 进度管理功能实现

目录结构体现了 sunvpy 的分层设计理念。顶层目录包含所有对外暴露的模块,ssprocess_mixins 子目录包含内部实现细节,通过 Mixin 模式组织功能,提高了代码的可维护性和扩展性。

Sources: PySSProcess.py ssprocess_mixins/project_mixin.py

环境配置最佳实践

遵循以下最佳实践可以避免大多数环境配置问题,提高开发效率。

实践 说明 收益
使用虚拟环境 为每个项目创建独立的 Python 虚拟环境 避免依赖冲突,便于环境隔离
版本固定 在项目中记录使用的 Python 版本 确保团队环境一致,减少兼容性问题
定期备份 备份 sunvpy 安装目录和相关配置 快速恢复损坏的环境
文档记录 记录安装步骤和配置细节 便于团队共享和问题排查
测试驱动 编写自动化测试脚本验证环境 提前发现问题,提高环境可靠性

推荐开发环境设置

对于开发团队,建议使用以下环境配置流程。

flowchart LR
    A[创建虚拟环境] --> B[安装 SunvStation]
    B --> C[配置 Python 路径]
    C --> D[验证 sunvpy 导入]
    D --> E[运行环境测试脚本]
    E --> F{测试通过?}
    F -->|否| G[检查错误日志]
    F -->|是| H[保存环境配置]
    G --> I[修复配置问题]
    I --> D
    H --> J[开始开发工作]

虚拟环境可以通过 venvconda 创建,确保每个项目都有独立且一致的运行环境。测试脚本应该包含基本导入测试、功能测试和性能基准测试,在环境配置完成后立即运行。

Sources: PySSProcess.py

下一步学习

完成环境配置后,建议按照以下学习路径深入掌握 sunvpy 的使用方法。

对于想要理解 sunvpy 底层原理的开发者,可以继续阅读: