抱歉,暂不支持 Python 3.9 及以上版本。

挤压也是个漫长的等待,注视着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了,可能正好邻居们都在家追剧呢 :rofl:

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可用到的内存上限,通常并不会达到上限

找到代码啦,还是很感谢的,是何老师亲自客服吗?很想能当面请教。 :smiling_face_with_three_hearts:

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

可以进入下一个阶段,体验阶段了。感谢何老师耐心解答。这回是真人互动,还是很开心的。父亲节快乐。充实的一天。

1 Like