Spacy、CUDA、PyTorch与Python版本兼容问题解决方案咨询
解决Spacy+PyTorch+CUDA10.1版本兼容问题
核心矛盾梳理
你的问题本质是版本链的冲突:
- Spacy 3.7.4要求Python 3.8-3.11,且PyTorch ≥1.13.0或TensorFlow ≥2.12.0
- CUDA 10.1支持的最高PyTorch版本为1.9.0(PyTorch 1.10.0及以上不再兼容CUDA 10.1)
- 你当前的Python 3.12超出Spacy 3.7.4的支持范围
可行解决方案:降级Spacy+Python+PyTorch到兼容组合
选择Spacy 3.2.x + Python 3.9.x + PyTorch 1.9.0+cu101的组合,这套组合同时满足:
- PyTorch 1.9.0支持CUDA 10.1
- Spacy 3.2.x兼容PyTorch 1.8.0+
- Python 3.9.x同时适配前两者
具体操作步骤
降级Python到3.9.x
推荐安装Python 3.9.18(稳定版),可通过pyenv或系统包管理器完成,避免影响全局环境。创建并激活虚拟环境
python3.9 -m venv spacy_ner_env source spacy_ner_env/bin/activate安装兼容CUDA10.1的PyTorch
pip install torch==1.9.0+cu101 torchvision==0.10.0+cu101 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html安装对应版本的Spacy和Transformer组件
pip install spacy==3.2.6 pip install spacy-transformers==1.2.5验证GPU可用性
在Python交互环境中运行以下代码:import spacy from spacy_transformers.util import torch_gpu_is_available print("GPU是否可用:", torch_gpu_is_available()) nlp = spacy.load("en_core_web_trf") print("加载的Pipeline组件:", nlp.pipe_names) print("模型运行设备:", nlp.transformer.model.device)输出显示
cuda:0即说明GPU已正常启用。
注意事项
- 若需使用自定义Transformer模型,确保模型兼容PyTorch 1.9.0(如BERT-base、RoBERTa-base等经典模型均无问题)
- 避免使用全局环境安装,虚拟环境能有效隔离版本冲突
内容的提问来源于stack exchange,提问作者Encipher
相关产品推荐
相关产品推荐

