Python3.9环境运行OpenNMT入门示例触发源语料路径错误
报错核心原因
抛出OSError: Please check path of your corpus_1/path_src file!的直接触发点,是onmt_build_vocab执行时没有接收到有效的源语料路径配置,OpenNMT在参数校验环节检测到语料路径为空或不存在,直接中断了流程。这个报错不属于安装异常,和当前macOS的双Python环境本身没有直接冲突,只是操作步骤缺失参数传入导致的。
实操解决步骤
- 首先确认当前工作位置:执行
pwd检查路径,确认已经进入解压后的toy_ende文件夹,再执行ls查看目录内容,确保目录下存在三个核心文件:官方附带的toy-en-de.yaml配置文件、toy.src源语言语料、toy.tgt目标语言语料。如果找不到文件,退回到压缩包解压的根目录重新定位toy_ende文件夹。 - 不要无参直接运行
onmt_build_vocab命令,必须关联对应配置文件执行,直接运行下述命令即可完成词表构建:onmt_build_vocab -config toy-en-de.yaml -n_sample 10000 - 词表构建完成后,后续启动训练环节也需要传入同一个配置文件参数,禁止裸跑
onmt_train命令。
双Python环境的额外排查点
- 如果执行命令后仍提示路径错误,先执行
which onmt_build_vocab确认当前调用的脚本路径:如果输出的不是Python3.9路径下的脚本,说明当前shell的环境变量优先级将Python2的路径排在了前面,这时候可以绕开全局脚本,直接用Python3.9的模块方式调用:python3.9 -m onmt.bin.build_vocab -config toy-en-de.yaml -n_sample 10000 - 如果手动修改过yaml配置文件里的语料路径,记得把原配置里的示例相对路径调整为当前目录下的实际文件位置——比如原配置中写的
data/toy.src,在已经进入toy_ende目录的场景下就是无效路径,直接填写当前目录的toy.src、toy.tgt即可匹配有效文件。
内容的提问来源于stack exchange,提问作者Jose Chavez
相关产品推荐
相关产品推荐

