Metamap执行报错‘fgets: No such file or directory’的排查求助
Metamap运行"fgets: No such file or directory"错误排查方案
可能原因及解决步骤
- 检查配置文件路径匹配性
打开public_mm目录下的配置文件(如config.txt或metamaprc),核对其中定义的路径是否适配本地环境。比如原服务器的/data/metamap/public_mm/路径,需要替换为当前public_mm的实际绝对路径,重点确认Berkeley DB、词典文件的配置路径。 - 验证依赖文件完整性
- 检查
DB目录下是否存在DB.USAbase.2016AA.strict系列文件,包括varsan表对应的数据库文件; - 给
bin目录下的所有工具添加执行权限:chmod +x ./bin/*; - 确认
data目录及其中的术语、词典文件完整,路径配置指向正确。
- 检查
- 设置必要环境变量
临时设置环境变量后重新测试:export METAMAP_HOME=/你的public_mm绝对路径 export MM_DATA_DIR=$METAMAP_HOME/DB - 排查输入方式问题
先直接运行./bin/metamap -I,手动输入lung cancer回车测试。如果手动输入正常,换用文件输入验证:echo "lung cancer" > test.txt ./bin/metamap -I test.txt - 核对Berkeley DB版本
确认本地Ubuntu安装的Berkeley DB版本为4.8(Metamap 2016AA的兼容版本),版本不兼容会导致数据库读取失败,触发fgets报错。
预期正常输出
Berkeley DB databases (USAbase 2016AA strict model) are open.
Static variants will come from table varsan in /data/metamap/public_mm/DB/DB.USAbase.2016AA.strict.
Derivational Variants: Adj/noun ONLY.
Variant generation mode: static.
Established connection $stream(139692534873008) to TAGGER Server on localhost.metamap16.BINARY.Linux (2016)
Control options:
composite_phrases=4
lexicon=db
mm_data_year=2016AA
show_cuis
Processing 00000000.tx.1: lung cancer
内容的提问来源于stack exchange,提问作者Callie Deas
相关产品推荐
相关产品推荐

