2. 环境搭建与依赖安装

本章将搭建 GraphSAGE 实时欺诈评分接口的完整开发环境。我们将依次完成 Python 虚拟环境创建、图神经网络框架安装、Web 服务框架安装以及辅助工具库的配置。正确的环境隔离与版本匹配是后续开发稳定运行的基础。

版本兼容性提示:本教程基于 Python 3.10 + CUDA 11.8 构建。若使用其他 CUDA 版本或 CPU 环境,请对应调整 PyTorch 与 PyG 的安装命令。

2.1 Python 虚拟环境创建

使用 conda 创建独立虚拟环境,避免与系统 Python 或其他项目产生依赖冲突。

# 创建 Python 3.10 虚拟环境
conda create -n graphsage_fraud python=3.10 -y

# 激活环境
conda activate graphsage_fraud

# 验证 Python 版本
python --version
# 输出应为:Python 3.10.x
环境命名规范:建议使用 graphsage_fraud 作为环境名称,与项目主题保持一致,便于多项目切换时识别。

2.2 PyTorch 安装

PyTorch 是 PyG 和 DGL 的底层计算引擎。根据 CUDA 版本选择对应安装命令。

CUDA 版本 安装命令 适用场景
CUDA 11.8 pip install torch==2.1.0 torchvision==0.16.0 torchaudio==2.1.0 --index-url https://download.pytorch.org/whl/cu118 推荐 GPU 环境
CUDA 12.1 pip install torch==2.1.0 torchvision==0.16.0 torchaudio==2.1.0 --index-url https://download.pytorch.org/whl/cu121 新显卡用户
CPU Only pip install torch==2.1.0 torchvision==0.16.0 torchaudio==2.1.0 --index-url https://download.pytorch.org/whl/cpu 开发调试/无 GPU
# 验证 PyTorch 安装
python -c "import torch; print(torch.__version__); print(torch.cuda.is_available())"
# 输出示例:2.1.0+cu118 / True

2.3 PyTorch Geometric (PyG) 安装

PyG 提供了丰富的图神经网络层与数据加载工具,是构建 GraphSAGE 模型的核心库。

# 安装 PyG 核心库
pip install torch_geometric==2.4.0

# 安装 PyG 依赖的图计算扩展
pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://data.pyg.org/whl/torch-2.1.0+cu118.html
常见安装失败原因:
1. PyTorch 版本与 PyG 扩展不匹配 — 务必使用 torch-2.1.0+cu118 对应的 wheel 链接。
2. 缺少 C++ 编译工具 — Windows 需安装 Visual Studio Build Tools;Linux 需安装 build-essential。
3. CUDA 路径未正确配置 — 检查 CUDA_HOME 环境变量。
# 验证 PyG 安装
python -c "import torch_geometric; print(torch_geometric.__version__)"
# 输出示例:2.4.0
PyG 安装依赖关系 PyTorch 2.1.0 PyG 核心 (torch_geometric) pyg_lib torch_scatter torch_sparse torch_cluster 安装顺序:先 PyTorch → 再 PyG 核心 → 最后四个扩展库(需匹配 CUDA 版本)

2.4 DGL 安装

DGL(Deep Graph Library)是另一个主流的图神经网络框架,本教程将 DGL 作为 GraphSAGE 的备选后端,用于对比实验与性能测试。

# CUDA 11.8 版本
pip install dgl==1.1.3+cu118 -f https://data.dgl.ai/wheels/cu118/repo.html

# CPU 版本
pip install dgl==1.1.3 -f https://data.dgl.ai/wheels/repo.html
# 验证 DGL 安装
python -c "import dgl; print(dgl.__version__)"
# 输出示例:1.1.3

2.5 FastAPI 与 Uvicorn 安装

FastAPI 负责构建 RESTful API 接口,Uvicorn 作为 ASGI 服务器提供高性能并发能力。

# 安装 FastAPI 与 Uvicorn
pip install fastapi==0.104.1 uvicorn==0.24.0

# 安装 Pydantic(FastAPI 依赖的数据校验库)
pip install pydantic==2.5.2
# 验证安装
python -c "import fastapi; print(fastapi.__version__)"
python -c "import uvicorn; print(uvicorn.__version__)"
# 输出示例:0.104.1 / 0.24.0
生产环境建议:Uvicorn 默认单进程运行。生产部署时可配合 gunicorn + uvicorn.workers.UvicornWorker 实现多进程并发。

2.6 其他依赖库安装

以下工具库在数据预处理、模型评估、日志记录等环节中必不可少。

库名 版本 用途
numpy ≥1.24 数值计算与矩阵操作
pandas ≥2.0 表格数据加载与特征工程
scikit-learn ≥1.3 数据划分、评估指标、标准化
networkx ≥3.1 图结构可视化与拓扑分析
matplotlib ≥3.7 训练曲线与结果可视化
loguru ≥0.7 结构化日志记录
joblib ≥1.3 模型序列化与缓存
# 一键安装所有辅助库
pip install numpy==1.24.3 pandas==2.0.3 scikit-learn==1.3.0 networkx==3.1 matplotlib==3.7.2 loguru==0.7.2 joblib==1.3.2
GraphSAGE 实时欺诈评分技术栈 Web 服务层 FastAPI + Uvicorn (ASGI 高性能接口) 图模型层 PyG (主) + DGL (备) — GraphSAGE 模型训练与推理 计算引擎层 PyTorch 2.1.0 + CUDA 11.8 (GPU 加速) 数据处理与工具层 NumPy · Pandas · Scikit-learn · NetworkX · Matplotlib · Loguru · Joblib

2.7 环境验证脚本

执行以下完整脚本,一键验证所有依赖是否安装正确:

# verify_env.py
import sys
import torch
import torch_geometric
import dgl
import fastapi
import uvicorn
import numpy as np
import pandas as pd
import sklearn
import networkx as nx
import matplotlib
import loguru
import joblib

print("=" * 50)
print("环境验证报告")
print("=" * 50)
print(f"Python 版本: {sys.version}")
print(f"PyTorch 版本: {torch.__version__}, CUDA 可用: {torch.cuda.is_available()}")
print(f"PyG 版本: {torch_geometric.__version__}")
print(f"DGL 版本: {dgl.__version__}")
print(f"FastAPI 版本: {fastapi.__version__}")
print(f"Uvicorn 版本: {uvicorn.__version__}")
print(f"NumPy 版本: {np.__version__}")
print(f"Pandas 版本: {pd.__version__}")
print(f"Scikit-learn 版本: {sklearn.__version__}")
print(f"NetworkX 版本: {nx.__version__}")
print(f"Matplotlib 版本: {matplotlib.__version__}")
print(f"Loguru 版本: {loguru.__version__}")
print(f"Joblib 版本: {joblib.__version__}")
print("=" * 50)
print("所有依赖安装完成!")
print("=" * 50)
# 运行验证脚本
python verify_env.py
验证通过标志:所有库版本号正常显示,且 CUDA 可用: True(GPU 环境)或 False(CPU 环境),无 ImportError 异常。

2.8 常见问题与解决方案

问题现象 可能原因 解决方案
ImportError: No module named 'torch_geometric' PyG 未安装或安装顺序错误 先确认 PyTorch 已安装,再重新安装 PyG 核心库
OSError: libcudart.so.11.0: cannot open shared object file CUDA 运行时库缺失或版本不匹配 安装对应 CUDA Toolkit 或使用 CPU 版本 PyTorch
RuntimeError: CUDA error: no kernel image is available PyTorch CUDA 版本与显卡驱动不兼容 使用 nvidia-smi 查看驱动支持的 CUDA 版本,重新安装匹配的 PyTorch
pip install 速度极慢或超时 默认 PyPI 源在国外 使用国内镜像源:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple
重要提醒:如果使用 Windows 系统,建议优先安装 Microsoft Visual C++ Redistributable,否则 torch_scatter 等 C++ 扩展可能编译失败。Linux 用户请确保已安装 build-essential 和 python3-dev。