前言
在docker环境中,使用HanLP时遇到标题所示的异常,但在测试服务器上却没有遇到,经过一番探索之后,发现“测试服务器上运维已经安装与配置好了JAVA,而docker 容器中没有安装与配置JAVA”。因此如果遇到以上异常,首先确保已正确安装JDK(JAVA Development Kits),JDK可以理解为集成开发环境,JDK-11及以上版本一般会包含JRE(JAVE Runtime Environment), JRE可以看着是Python语言类似的对象,JVM是用以编译JAVA对象的,JAR可以看作是JAVA脚本文件,类似于Python脚本文件。其次确保对JAVA进行配置。阅读下文之前,请阅读参考资料。
安装
阅读参考资料一后需要注意:
-
版本选择JAVA SE 8u281就可以了,位数需要与ubuntu系统位数匹配。
-
安装完成后,不需要配置“\etv\enviroment”,直接配置“ \etc\profile ”就可以了,后者是系统全局配置。核心配置值为JAVA安装路径的bin文件路径,如下:
export JAVA_HOME=/usr/local/java # 此处为自定义的JAVA安装路径 export PATH=${JAVA_HOME}/bin:${PATH}
配置完后使用source命令生效,应该可以在PATH
变量中找到JAVA的安装路径。
debug :/usr/lib/jvm
阅读参考资料二后:
-
程序确定JAVA路径核心是“_get_from_java_home” 与“_get_from_java_home”函数,前者先执行,前者找不到路径才会再运行后者。前者就是从“JAVA_HOME”变量中获取值,后者从预定义的路径查找值,如下所示:
遵从参考资料二的建议应该就能解决此问题。
-
另外在pycharm console使用HanLP时,需通过以下方式:
参考资料
2. 关于pyhanlp报FileNotFoundError: [Errno 2] No such file or directory: '/usr/lib/jvm’错误的解决