挤压也是个漫长的等待,注视着CPU占用率的变化的进度条,好过一点儿。
hanlp segment
使用本地 /home/pi/.local/lib/python3.7/site-packages/pyhanlp/static/data-for-1.8.3.zip, 忽略 https://file.hankcs.com/hanlp/data-for-1.7.5.zip
解压 data.zip...
Invalid maximum heap size: -Xmx8g
The specified size exceeds the maximum representable size.
Traceback (most recent call last):
File "/home/pi/.local/bin/hanlp", line 6, in <module>
from pyhanlp.main import main
File "/home/pi/.local/lib/python3.7/site-packages/pyhanlp/__init__.py", line 149, in <module>
_start_jvm_for_hanlp()
File "/home/pi/.local/lib/python3.7/site-packages/pyhanlp/__init__.py", line 136, in _start_jvm_for_hanlp
HANLP_JVM_XMX, convertStrings=True)
File "/home/pi/.local/lib/python3.7/site-packages/jpype/_core.py", line 219, in startJVM
_jpype.startup(jvmpath, tuple(args), ignoreUnrecognized, convertStrings)
RuntimeError: Unable to start JVM
at loadJVM(native/common/jp_env.cpp:169)
at loadJVM(native/common/jp_env.cpp:179)
at startup(native/python/pyjp_module.cpp:159)
JVM 又出事儿啦。
Invalid maximum heap size: -Xmx8g
The specified size exceeds the maximum representable size.
最大堆栈尺寸超过了内存的最大值,这个能手动调低些吗?
吃完饭回来,100K了,可能正好邻居们都在家追剧呢
LINUX 是 32BIT 版本,内存是不是有限制呢?
Linux系统运行HanLP时候 TypeError: startJVM() got an unexpected keyword argument ‘convertStrings‘
QuietNightThought
于 2020-12-31 08:58:42 发布
160
收藏
分类专栏: Linux 文章标签: python 自然语言处理
版权
Linux
专栏收录该内容
7 篇文章0 订阅
订阅专栏
在Linux下安装hanlp的时候,万事具备却遇到了TypeError: startJVM() got an unexpected keyword argument 'convertStrings’这样的问题
解决方法:找到 启动JVM的代码块做出如下修改
我的代码块是在 speech/lib/python3.6/sit-packages/pyhanlp 下的__init__.py 文件,speech是我的虚拟环境,找到pyhanlp的安装地方就找到这个文件。
启动JVM
startJVM(
jvm_path,
JAVA_JAR_CLASSPATH,
“-Xms%s” %
HANLP_JVM_XMS,
“-Xmx%s” %
HANLP_JVM_XMX, convertStrings=True)
1
2
3
4
5
6
7
将末行的 convertStrings=True删除以消除影响,本人就是这么解决问题的,有什么其他什么好的方法大家一起交流。
————————————————
版权声明:本文为CSDN博主「QuietNightThought」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/shdabai/article/details/112002029
32位的系统最大内存只能支持4GB,参考这个配置:
不要信这些非官方的教程,他们jpype的版本装错了才会出现这个问题。
if "HANLP_JVM_XMS" in ENVIRON:
HANLP_JVM_XMS = ENVIRON["HANLP_JVM_XMS"]
else:
HANLP_JVM_XMS = "512m"
if "HANLP_JVM_XMX" in ENVIRON:
HANLP_JVM_XMX = ENVIRON["HANLP_JVM_XMX"]
else:
HANLP_JVM_XMX = "8g" # JVM可用到的内存上限,通常并不会达到上限
找到代码啦,还是很感谢的,是何老师亲自客服吗?很想能当面请教。
set HANLP_JVM_XMX=“4g”
export
declare -x DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus"
declare -x DISPLAY="localhost:10.0"
declare -x FRAMEBUFFER="/dev/fb1"
declare -x HANLP_JVM_XMX="4g"
hanlp segment
Invalid maximum heap size: -Xmx4g
The specified size exceeds the maximum representable size.
Traceback (most recent call last):
File "/home/pi/.local/bin/hanlp", line 6, in <module>
from pyhanlp.main import main
File "/home/pi/.local/lib/python3.7/site-packages/pyhanlp/__init__.py", line 149, in <module>
_start_jvm_for_hanlp()
File "/home/pi/.local/lib/python3.7/site-packages/pyhanlp/__init__.py", line 136, in _start_jvm_for_hanlp
HANLP_JVM_XMX, convertStrings=True)
File "/home/pi/.local/lib/python3.7/site-packages/jpype/_core.py", line 219, in startJVM
_jpype.startup(jvmpath, tuple(args), ignoreUnrecognized, convertStrings)
RuntimeError: Unable to start JVM
at loadJVM(native/common/jp_env.cpp:169)
at loadJVM(native/common/jp_env.cpp:179)
at startup(native/python/pyjp_module.cpp:159)
pi@raspberrypi:~ declare -x HANLP_JVM_XMX="3g"
pi@raspberrypi:~ set HANLP_JVM_XMX=“3g”
pi@raspberrypi:~ $ export
declare -x DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus"
declare -x DISPLAY="localhost:10.0"
declare -x FRAMEBUFFER="/dev/fb1"
declare -x HANLP_JVM_XMX="3g"
hanlp segment
Error occurred during initialization of VM
Could not reserve enough space for 3145728KB object heap
手动配置
如果实在需要亲自动手,可以通过设置环境变量来自定义HanLP版本和数据位置。
变量名 | 默认值 | 备注 |
---|---|---|
HANLP_STATIC_ROOT | pyhanlp所在安装路径的static文件夹 | 配置文件hanlp.properties所在的目录 |
HANLP_JAR_PATH | pyhanlp所在安装路径的static文件夹 | HanLP jar 包位置 |
HANLP_JVM_XMS | 512m | Java 虚拟机 初始申请内存大小 |
HANLP_JVM_XMX | 1g | Java 虚拟机 可占用的最大内存 |
HANLP_GOOGLE_UA | UA-XXXXX-X | Google Analytics 网站 id |
HANLP_VERBOSE | 0 | 调试日志开关 |
pi@raspberrypi:~ declare -x HANLP_JVM_XMX="2048m"
pi@raspberrypi:~ hanlp segment
^Cpi@raspberrypi:~ declare -x HANLP_JVM_XMX=“2g”
以及 1G 都是没有反映,是要等在哪里吗?
---
原来这就成功了.随意输入了几个词语,就有回复啦.
pi@raspberrypi:~ $ hanlp segment
sdafasdf
sdafasdf/nx
hanlp segment
《自然语言处理入门》是一本务实的NLP入门书,助你零起点上手自然语言处理。
《/w 自然语言处理/nz 入门/vi 》/w 是/vshi 一/m 本/rz 务实/vi 的/ude1 NLP/nx 入门/vi 书/n ,/w 助/v 你/rr 零起点/nz 上手/vi 自然语言处理/nz 。/w
可以进入下一个阶段,体验阶段了。感谢何老师耐心解答。这回是真人互动,还是很开心的。父亲节快乐。充实的一天。