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 扩展不匹配 — 务必使用
2. 缺少 C++ 编译工具 — Windows 需安装 Visual Studio Build Tools;Linux 需安装
3. CUDA 路径未正确配置 — 检查
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
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
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。