导入torchtext的get_tokenizer时出现WinError 127错误求助
解决TorchText导入时WinError 127问题
问题背景
使用PyTorch 2.4.0 + TorchText 0.18.0,执行以下代码时触发错误:
from torchtext.data.utils import get_tokenizer
错误信息:
Traceback (most recent call last): File "D:\PythonProjects\FakeNews\train.py", line 4, in <module> from torchtext.data.utils import get_tokenizer File "D:\PythonProjects\FakeNews\venv\Lib\site-packages\torchtext\__init__.py", line 18, in <module> from torchtext import _extension # noqa: F401 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\PythonProjects\FakeNews\venv\Lib\site-packages\torchtext\_extension.py", line 64, in <module> _init_extension() File "D:\PythonProjects\FakeNews\venv\Lib\site-packages\torchtext\_extension.py", line 58, in _init_extension _load_lib("libtorchtext") File "D:\PythonProjects\FakeNews\venv\Lib\site-packages\torchtext\_extension.py", line 50, in _load_lib torch.ops.load_library(path) File "D:\PythonProjects\FakeNews\venv\Lib\site-packages\torch\_ops.py", line 1295, in load_library ctypes.CDLL(path) File "C:\Users\Owner\AppData\Local\Programs\Python\Python312\Lib\ctypes\__init__.py", line 379, in __init__ self._handle = _dlopen(self._name, mode) ^^^^^^^^^^^^^^^^^^^^^^^^^ OSError: [WinError 127] The specified procedure could not be found
已尝试重装、升级依赖但无效,以下是针对性解决方案:
解决方案
匹配CUDA版本安装TorchText
TorchText预编译包与PyTorch的CUDA版本强绑定,先确认当前PyTorch的CUDA版本:import torch print(torch.version.cuda)卸载现有TorchText后,指定对应CUDA版本重新安装(示例为cu121,需替换为你的实际版本):
pip uninstall torchtext -y pip install torchtext==0.18.0 --index-url https://download.pytorch.org/whl/cu121降级Python至3.11版本
Python 3.12的ABI变更可能导致TorchText 0.18.0预编译包兼容性问题。创建新虚拟环境,安装Python 3.11后重新部署依赖:# 使用conda创建环境(venv同理) conda create -n torch_env python=3.11 conda activate torch_env pip install torch==2.4.0 torchtext==0.18.0 --index-url https://download.pytorch.org/whl/cu121从源码编译TorchText
若预编译包存在适配问题,手动编译源码可解决版本兼容:- 卸载现有TorchText:
pip uninstall torchtext -y - 克隆仓库并切换到0.18.0标签:
git clone https://github.com/pytorch/text.git cd text git checkout tags/v0.18.0 - 编译并安装:
pip install -e .
- 卸载现有TorchText:
安装Visual C++运行库
WinError 127通常源于缺失系统级动态链接库,安装Visual C++ Redistributable for Visual Studio 2022 (x64),覆盖Torch扩展所需的C++运行时依赖。
内容的提问来源于stack exchange,提问作者ShadowProgrammer
相关产品推荐
相关产品推荐

